kotlin的哪个功能可以替代通过Java代理进行的方法拦截
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin的哪个功能可以替代通过Java代理进行的方法拦截相关的知识,希望对你有一定的参考价值。
在Java中,如果我想对类进行[[拦截方法调用,则可以使用Proxy.newProxyInstance()
并提供实现InvocationHandler
的invoke()
。
委派的属性
来进行拦截属性访问。 kotlin是否具有可用于为方法提供类似功能的任何功能?答案
Kotlin没有创建Proxies
的标准和统一方法。在使用K / JVM平台时,您仍然可以使用Proxy.newProxyInstance()
,但请记住,Kotlin编译器将生成/重命名方法(您可以使用@JvmName
进行控制)。在JS平台上,有一个类似的功能(MDN doc here),并且您有@JsName
来处理方法重命名。就本机而言,(据我所知)由于没有实现反射,因此没有办法。
委派的目的不是提供代理的替代方案,但是您可以在某些用例中摆脱它们。
以上是关于kotlin的哪个功能可以替代通过Java代理进行的方法拦截的主要内容,如果未能解决你的问题,请参考以下文章