我正在Kotlin中实现一个可从Java使用的库。可以在Kotlin中创建注释和AOP代码,然后在Java中使用。
如果可能的话,文档或示例将很棒。我找不到任何具有这种互操作性的东西。
问候。
至于注释,在Kotlin中实现它应该没有任何问题。
至于方面,当使用Kotlin编译器进行编译时,它将最终成为带有所有必需@AspectJ批注的常规JVM类,但这将不是一个方面,因为它不是由AspectJ编译器编译的,到目前为止,AspectJ编译器还无法理解Java源代码。
顺便说一句,我需要你提供更多有关“从Java中使用”的含义的信息。请详细说明。
更新:我只是尝试了一下:
效果很好,方面也可以发挥作用。
剩下的唯一步骤是将它与AspectJ Maven插件“美化”,这应该相当容易。但是问题的答案是:是的,你可以在Kotlin中实现一个方面,并将其与Java目标类结合使用。当然,缺点是你需要在类路径上使用Kotlin标准库,而不仅仅是像往常一样仅使用AspectJ运行时。
更新2:我为自己和你的方便创建了一个Maven多模块游乐场项目。只需克隆我的GitHub存储库,然后根据自述文件构建并运行即可。
更新:我尝试过,它可以工作。看到我更新的答案。
@dreamcrash:我可能很快就忽略了您对此博客文章的链接。关键是这里没有描述使用场景,只有AspectJ Maven XML代码片段。我还没有尝试过,但是在命令行上手动完成操作之后,我认为我刚刚执行的Maven版本可能与此处显示的类似。但是,这实际上取决于项目的设置,例如,方面和目标类位于相同或不同的模块中。我的测试是两个单独的模块,该网站未涵盖该模块。
这是一个很好的答案,非常感谢
更新2:我为自己和您的方便创建了一个Maven多模块游乐场项目。只需克隆我的GitHub存储库,然后根据自述文件构建并运行即可。