0

伙计们;这是我的问题:我目前有一个类扩展另一个类,每个类上都有一个 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”的情况下执行此操作(由于未初始化超类型)

谢谢你的时间!(对不起,如果我说的不是最容易理解的问题)

4

1 回答 1

0

您不能强制子类具有注释。如果这对您很重要,您可以改用模板方法模式。

但是如果你需要使用注解,你可以阅读子类注解

class Minigame {
    protected Minigame() {
        GameInfo info = getClass().getAnnotation(GameInfo.class);
    }
}
于 2012-11-08T23:47:44.817 回答