Java@Nullable参数

Java@Nullable参数,java,intellij-idea,Java,Intellij Idea,我反汇编了一个.jar文件,最后得到了一些调用构造函数的文件: public Interface_inheritance_specContext(ParserRuleContext parent, int invokingState) { super(invokingState); } 通过以下实施: public ParserRuleContext(@Nullable ParserRuleContext parent, int invokingStateNumber) { s

我反汇编了一个.jar文件,最后得到了一些调用构造函数的文件:

public Interface_inheritance_specContext(ParserRuleContext parent, int invokingState) { super(invokingState); }
通过以下实施:

public ParserRuleContext(@Nullable ParserRuleContext parent, int invokingStateNumber) {
        super(parent, invokingStateNumber);
    }
编译时会出现以下错误:

Error:(199, 92) java: no suitable constructor found for ParserRuleContext(int)
    constructor org.antlr.v4.runtime.ParserRuleContext.ParserRuleContext() is not applicable
      (actual and formal argument lists differ in length)
    constructor org.antlr.v4.runtime.ParserRuleContext.ParserRuleContext(org.antlr.v4.runtime.ParserRuleContext,int) is not applicable
      (actual and formal argument lists differ in length)
看问题,我看不到任何考虑“强>可空”<强>参数的答案。构造函数位于一个单独的.jar文件中,我希望我也不必反汇编它


我注意到,通过添加一个额外的null参数解决了这个问题。但是为什么首先给出错误呢

您在问题中粘贴的ParserRuleContext的构造函数不是vararg构造函数,而是一个接受两个参数的构造函数,@Nullable只是提到第一个参数可以为null


因此,当您仅使用一个参数调用构造函数时,它无法识别单个参数构造函数,因此会出现错误

您在问题中粘贴的ParserRuleContext的构造函数不是vararg构造函数,而是一个接受两个参数的构造函数,@Nullable只是提到第一个参数可以为null


因此,当您仅使用一个参数调用构造函数时,它无法识别单个参数构造函数,因此会出现错误

您在问题中粘贴的ParserRuleContext的构造函数不是vararg构造函数,而是一个接受两个参数的构造函数,@Nullable只是提到第一个参数可以为null


因此,当您仅使用一个参数调用构造函数时,它无法识别单个参数构造函数,因此会出现错误

您在问题中粘贴的ParserRuleContext的构造函数不是vararg构造函数,而是一个接受两个参数的构造函数,@Nullable只是提到第一个参数可以为null

因此,当您仅使用一个参数调用构造函数时,它无法识别单个参数构造函数,因此会出现错误