如何在Kotlin上创建开放的匿名类实现接口

默认情况下,kotlin中的类是final,因此在使用aspect(Spring AOP)时不兼容。

@Log-我的方面,记录有趣的参数。

此代码可以正常工作

@Log
open class ConfirmCallbackImp : ConfirmCallback {
    override fun confirm(correlationData: CorrelationData?,ack: Boolean,cause: String?) {
    }
}

@Bean
fun setConfirmCallback(): ConfirmCallback {
    return ConfirmCallbackImp()
}

此代码引发异常

@Bean
fun setConfirmCallback(): ConfirmCallback {
    return object : ConfirmCallback {

        @Log
        override fun confirm(correlationData: CorrelationData?,cause: String?) {
        }
    }
}

例外: 原因:java.lang.IllegalArgumentException:无法子类化最终类ru.configuration.rbmq.EndpointConfiguration $ setConfirmCallback $ 1

zcwilove 回答:如何在Kotlin上创建开放的匿名类实现接口

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3144746.html

大家都在问