我从未在java中做过注释,我想创建一个注释来注册已注释类的所有实例,如下所示:
@MyAnnotation
class A{}
class B{
private List<Object> registeredInstances = new ArrayList<>();
public void registeringMethod(Object instance){
registeredInstances.add(instance);
}
}
例如每次创建新的a对象时,都会使用实例调用registeringMethod。有可能吗?
感谢
使用纯注释是无法做到这一点的。
您必须使用某种面向方面的编程才能做到这一点。看到这个类似的问题:
如何使用AOP拦截File、FileReader、FileWriter、FileInputStream和FileOutputStream的构造函数?
但是它很复杂,只需将自己的注册逻辑添加到构造函数中可能会更容易,尽管这有点令人反感,因为您正在注册不完整的对象。