好了,伙计们,这是我的问题:我目前有一个类扩展了另一个类,每个类上都有一个gameinfo.class注释(有没有一种方法可以用编译器强制执行?)
理想情况下,我希望在它扩展的类型中调用以下内容:
@GameInfo(name = "Default Minigame", aliases = {"DM"}, pvp = false, authors = {"Tom"},
gameTime = 65, description = "desc")
public class DefaultMinigame extends Minigame {
public DefaultMinigame(Plugin p) {
super(p, DefaultMinigame.class.getAnnotation(GameInfo.class));
}我不想在每个类中都调用上面的函数,而是在Minigame.class中调用它,如果不调用" this“(由于超类型没有被初始化),我该怎么做呢?
耽误您时间,实在对不起!(如果我说的不是最容易理解的问题,我很抱歉)
发布于 2012-11-09 07:47:45
你不能强制一个子类有注解。如果这对您很重要,您可以使用模板方法模式。
但是如果你需要使用注解,你可以读取子类注解
class Minigame {
protected Minigame() {
GameInfo info = getClass().getAnnotation(GameInfo.class);
}
}https://stackoverflow.com/questions/13299817
复制相似问题