【发布时间】:2018-10-17 21:55:16
【问题描述】:
我想对某些方法调用应用注释,以便我可以告诉 aspectj 修改这些调用的执行。
public interface Door {
void open() throws DoorException;
void close() throws DoorException;
}
public class Ferrari {
@Inject @Lightweight Door door;
public void drive() {
open();
close();
open();
}
}
在这种情况下,我希望所有打开/关闭操作都以相同的方式有效地包装,但如果我想让一个行为不同怎么办?
我想做这样的事情:
public class Ferrari {
@Inject Door door;
public void drive() {
door.open();
door.close();
@Slowly door.open();
}
}
我意识到我不能在那里放置注释,但同时,我不想破坏开放签名以传递可选的元数据。
最好的方法是什么?
我可以这样做:
public class Ferrari {
@Inject Door door;
public void drive() {
door.open();
door.close();
((@Slowly Door)door).open();
}
}
【问题讨论】:
标签: java annotations