kotlin的哪个功能可以替代通过Java代理进行的方法拦截

问题描述 投票:0回答:1

在Java中,如果我想对类进行[[拦截方法调用,则可以使用Proxy.newProxyInstance()并提供实现InvocationHandlerinvoke()

我已经看到,在kotlin中,您可以使用

委派的属性

来进行拦截属性访问。 kotlin是否具有可用于为方法提供类似功能的任何功能?
java kotlin interceptor dynamic-proxy delegated-properties
1个回答
0
投票
Kotlin没有创建Proxies的标准和统一方法。在使用K / JVM平台时,您仍然可以使用Proxy.newProxyInstance(),但请记住,Kotlin编译器将生成/重命名方法(您可以使用@JvmName进行控制)。在JS平台上,有一个类似的功能(MDN doc here),并且您有@JsName来处理方法重命名。

就本机而言,(据我所知)由于没有实现反射,因此没有办法。

委派的目的不是提供代理的替代方案,但是您可以在某些用例中摆脱它们。

© www.soinside.com 2019 - 2024. All rights reserved.