Kotlin中的AOP将在Java类中使用

保罗

我正在Kotlin中实现一个可从Java使用的库。可以在Kotlin中创建注释和AOP代码,然后在Java中使用。

如果可能的话,文档或示例将很棒。我找不到任何具有这种互操作性的东西。

问候。

克里加克斯

至于注释,在Kotlin中实现它应该没有任何问题。

至于方面,当使用Kotlin编译器进行编译时,它将最终成为带有所有必需@AspectJ批注的常规JVM类,但这将不是一个方面,因为它不是由AspectJ编译器编译的,到目前为止,AspectJ编译器还无法理解Java源代码。

  • 如果通过LTW(加载时编织)使用这种“未完成”的方面,则AspectJ编织器可以在加载时将其完成为一个方面,因此该方案应该可以工作。
  • 在尝试将未完成的方面用于针对Java(或Kotlin)目标类的编译时或二进制编织的情况下,有必要使用中间步骤来使用AspectJ编译器完成未完成的方面,但是我从未尝试过,并且没有这样做知道是否有可能。尝试会很有趣。我不会说Kotlin,但是如果您有一个像我希望由Maven构建的示例项目这样的东西来开始尝试,也许会很有趣。如果有什么办法可以实现,我们最终会以不同的方式使用AspectJ Maven插件,就像建议的@dreamcrash一样。

顺便说一句,我需要您提供更多有关“从Java中使用”的含义的信息。请详细说明。


更新:我只是尝试了一下:

  • Kotlin中的注解和方面
  • 与科特林编译器来编译成我的-aspect.jaraspectjrt.jar类路径
  • 将Kotlin类打包到JAR中
  • 使用Kotlin方面JAR中的注释的Java类
  • 与编译AJC我-aspect.jar的INPATH和aspectjrt.jar科特林-stdlib.jar类路径上。
  • 结果例如在bin目录中,包括Java类和JAR中的两个Kotlin类,但是这次由ajc(比原始文件大的类文件)完成。
  • 运行Java程序与文件夹,aspectjrt.jar科特林-stdlib.jar类路径上。

效果很好,方面也可以发挥作用。

剩下的唯一步骤是将它与AspectJ Maven插件“美化”,这应该相当容易。但是问题的答案是:是的,您可以在Kotlin中实现一个方面,并将其与Java目标类结合使用。当然,缺点是您需要在类路径上使用Kotlin标准库,而不仅仅是照常使用AspectJ运行时。


更新2:我为自己和您的方便创建了一个Maven多模块游乐场项目。只需克隆我的GitHub存储库,然后根据自述文件构建并运行即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Java类中使用接口

来自分类Dev

Angularjs请求主体将在Rails 4中使用

来自分类Dev

在Java中使用多个类?

来自分类Dev

在ColdFusion11中使用Java类-CreateObject函数的Java对象类型未知

来自分类Dev

如何在将在Rails应用程序中使用的rubygem中写入日志?

来自分类Dev

在android java类中使用Kotlin扩展

来自分类Dev

比较中使用的Java布尔类变量

来自分类Dev

可以在Kotlin中使用继承类的val覆盖var吗?

来自分类Dev

在Java中名称相同的封装中使用类

来自分类Dev

在Kotlin中无法在对象的超类构造函数中使用常量

来自分类Dev

在Micronaut Kotlin数据类DTO中使用LocalDateTime

来自分类Dev

如何在Kotlin数据类中使用枚举

来自分类Dev

在Java代码中使用kotlin扩展功能

来自分类Dev

将在Scrapy中建立的会话Cookie传递给Splash以在抓取js页面中使用

来自分类Dev

无法在可运行类的kotlin / java中使用applicationContext

来自分类Dev

在Java中使用对象类?

来自分类Dev

使用Factory创建一个类,该类将在另一个类中使用

来自分类Dev

可以在Kotlin中使用继承类的val覆盖var吗?

来自分类Dev

其他语言的商品详情将在此提交中使用包装中的图标

来自分类Dev

将 Composer 放在将在其他项目中使用的 CMS 中的什么位置?

来自分类Dev

Kotlin 中的 Java 泛型:在 Kotlin 中使用 Java 原始类型作为方法参数

来自分类Dev

如何找出将在`cd -`中使用的路径?

来自分类Dev

java中使用继承的类

来自分类Dev

使用类路径中的 Kotlin 运行时库执行 Java 和 Kotlin 程序

来自分类Dev

Java Math 类 Kotlin 中的类

来自分类Dev

在 API 类中使用类中的函数

来自分类Dev

无法在 Kotlin 中自定义类的 `onClick` 方法中使用 lambda

来自分类Dev

在 java 和 kotlin 中使用 if 或 set 值

来自分类Dev

在 Kotlin 中使用常量填充基类成员

Related 相关文章

  1. 1

    在Java类中使用接口

  2. 2

    Angularjs请求主体将在Rails 4中使用

  3. 3

    在Java中使用多个类?

  4. 4

    在ColdFusion11中使用Java类-CreateObject函数的Java对象类型未知

  5. 5

    如何在将在Rails应用程序中使用的rubygem中写入日志?

  6. 6

    在android java类中使用Kotlin扩展

  7. 7

    比较中使用的Java布尔类变量

  8. 8

    可以在Kotlin中使用继承类的val覆盖var吗?

  9. 9

    在Java中名称相同的封装中使用类

  10. 10

    在Kotlin中无法在对象的超类构造函数中使用常量

  11. 11

    在Micronaut Kotlin数据类DTO中使用LocalDateTime

  12. 12

    如何在Kotlin数据类中使用枚举

  13. 13

    在Java代码中使用kotlin扩展功能

  14. 14

    将在Scrapy中建立的会话Cookie传递给Splash以在抓取js页面中使用

  15. 15

    无法在可运行类的kotlin / java中使用applicationContext

  16. 16

    在Java中使用对象类?

  17. 17

    使用Factory创建一个类,该类将在另一个类中使用

  18. 18

    可以在Kotlin中使用继承类的val覆盖var吗?

  19. 19

    其他语言的商品详情将在此提交中使用包装中的图标

  20. 20

    将 Composer 放在将在其他项目中使用的 CMS 中的什么位置?

  21. 21

    Kotlin 中的 Java 泛型:在 Kotlin 中使用 Java 原始类型作为方法参数

  22. 22

    如何找出将在`cd -`中使用的路径?

  23. 23

    java中使用继承的类

  24. 24

    使用类路径中的 Kotlin 运行时库执行 Java 和 Kotlin 程序

  25. 25

    Java Math 类 Kotlin 中的类

  26. 26

    在 API 类中使用类中的函数

  27. 27

    无法在 Kotlin 中自定义类的 `onClick` 方法中使用 lambda

  28. 28

    在 java 和 kotlin 中使用 if 或 set 值

  29. 29

    在 Kotlin 中使用常量填充基类成员

热门标签

归档