Java 使用AspectJ将抽象类更改为非抽象类?

Java 使用AspectJ将抽象类更改为非抽象类?,java,aop,aspectj,Java,Aop,Aspectj,据我所知,我可以使用AspectJ来代替抽象方法来实现具体的实现 是否也可以使用AspectJ(或另一种AOP语言)将类的定义从抽象更改为非抽象?(在使用类型间声明为抽象类中的所有抽象方法提供具体实现之后) 根据您的评论,我建议: 使您将类别设置为非abseact(删除abseact关键字) 提供引发运行时异常的默认实现 这将迫使库的用户为“Abstract”方法提供impl,但允许类是具体的 此模式已在JDK中使用。为什么要这样做?更简单的方法是使类非抽象,并为所有methodshi@Bo

据我所知,我可以使用AspectJ来代替抽象方法来实现具体的实现


是否也可以使用AspectJ(或另一种AOP语言)将类的定义从抽象更改为非抽象?(在使用类型间声明为抽象类中的所有抽象方法提供具体实现之后)

根据您的评论,我建议:

  • 使您将类别设置为非abseact(删除abseact关键字)
  • 提供引发运行时异常的默认实现
这将迫使库的用户为“Abstract”方法提供impl,但允许类是具体的


此模式已在JDK中使用。

为什么要这样做?更简单的方法是使类非抽象,并为所有methodshi@Bohemian提供默认的“不做任何事情”实现。发生的情况是,这是一个反复出现的情况,我不想要求我的库的用户总是编写不做任何事情的实现。此外,如果没有抽象方法,我必须定义一种机制来识别库应该插入的方法(例如,带有注释)。从我的库的用户的角度来看,如果他们只是将方法声明为抽象的,而不是添加注释,并且不做任何实现,那么会更容易、更快。当然,对于库实现者来说,这是更多的工作,但我想尝试一下。我认为这是一个误会(我认为我在最后的评论中没有正确解释,对不起)。我需要插入用户的某些类(它们不是从我的库中的类继承的)。我能识别出仪器的所有方法都是抽象的。如果类不再是抽象的,并且“抽象”方法提供了默认实现,那么我必须要求程序员对我的库应该插入的方法进行注释。我正在寻找一种机制,可以释放我的图书馆的用户从中。