在Java中,如果我想对类进行[[拦截方法调用,则可以使用Proxy.newProxyInstance()
并提供实现InvocationHandler
的invoke()
。
委派的属性
来进行拦截属性访问。 kotlin是否具有可用于为方法提供类似功能的任何功能?Proxies
的标准和统一方法。在使用K / JVM平台时,您仍然可以使用Proxy.newProxyInstance()
,但请记住,Kotlin编译器将生成/重命名方法(您可以使用@JvmName
进行控制)。在JS平台上,有一个类似的功能(MDN doc here),并且您有@JsName
来处理方法重命名。就本机而言,(据我所知)由于没有实现反射,因此没有办法。
委派的目的不是提供代理的替代方案,但是您可以在某些用例中摆脱它们。