Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:从超类型加载动态类注释_Java_Annotations_Classloader_Superclass - Fatal编程技术网

Java:从超类型加载动态类注释

Java:从超类型加载动态类注释,java,annotations,classloader,superclass,Java,Annotations,Classloader,Superclass,嗯,伙计们;我的问题是: 我目前有一个类扩展了另一个类,在每个类上都有一个gameinfo.class注释(有没有一种方法可以通过编译器强制实现这一点?) 理想情况下,我希望在其扩展的类型中调用以下内容: @GameInfo(name = "Default Minigame", aliases = {"DM"}, pvp = false, authors = {"Tom"}, gameTime = 65, description = "desc") public class DefaultMi

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

谢谢你的时间!
(如果我说的不是最容易理解的问题,那么很抱歉)

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

但是如果需要使用注释,可以使用

class Minigame {
    protected Minigame() {
        GameInfo info = getClass().getAnnotation(GameInfo.class);
    }
}

为什么不能在超类构造函数中使用
this
?就像在
this.getClass().getAnnotation(GameInfo.class)
中一样?谢谢你-我觉得有人需要睡觉(我)我的脸太硬了!你会怎么做?老实说,当我意识到这一点时,我的脸上露出了笑容:受保护的迷你游戏(){GameInfo f=this.getClass().getAnnotation(GameInfo.class);