在Java中调用方法时的标识符预期错误

塔诺斯

我用编写了这个相当简单的代码java这实际上来自称为Kmax的DAQ框架

import kmax.ext.*; 

public class Runtime implements KmaxRuntime {
    KmaxToolsheet tlsh; // Store a reference to the toolsheet environment
    KmaxHist hist1D;
    KmaxWidget checkBoxWidget;

    public void init(KmaxToolsheet toolsheet) {
        tlsh = toolsheet; // Save this reference for use in the toolsheet
        hist1D = tlsh.getKmaxHist("HIST1D");
        checkBoxWidget = tlsh.getKmaxWidget("CHECK_BOX_CALIB_METH");
        tlsh.getKmaxWidget("CHECK_BOX_CALIB_METH").setProperty("VALUE", "1");

    }

    public void CalibInit(KmaxWidget widget, KmaxHist histo){
        histo.setUseXAxisCalibration(stringToBool(widget.getProperty("VALUE")));
        histo.update();

    }
    CalibInit(checkboxWidget,hist1D);

    public void GO(KmaxToolsheet toolsheet){}
    public void SRQ(KmaxDevice device) {}
    public void HALT(KmaxToolsheet toolsheet) {}

} // End of the Runtime object

请注意,我在那里创建了一个名为的对象CHECK_BOX_CALIB_METH当我编译这段代码时,我得到那些错误消息

compiler msg>error: invalid method declaration; return type required
compiler msg>   CalibInit(checkboxWidget,hist1D);
compiler msg>   ^

compiler msg>error: <identifier> expected
compiler msg>CalibInit(checkboxWidget,hist1D);
compiler msg>                        ^


compiler msg>error: <identifier> expected
compiler msg>CalibInit(checkboxWidget,hist1D);
compiler msg>                               ^

请注意,如果我删除该CalibInit方法并将其替换为

public void CHECK_BOX_CALIB_METH(KmaxWidget widget) {

    hist1D.setUseXAxisCalibration(stringToBool(widget.getProperty("VALUE")));
    hist1D.update();

}

我没有编译错误。关键是方法的名称与对象的名称相同。我创建的原因CalibInit()是避免为具有相同功能的相同类型的每个对象使用每种方法。有办法解决吗?

如何避免这些错误?

丹尼尔·巴巴里安(Danielbarbarian)

代码

CalibInit(checkboxWidget,hist1D); 

它本身就不在您的任何方法之内。编译器假定这是一个新的方法声明,可能不是您想要的。

旁注:
不建议使用以大写字母开头的方法:“方法应为动词,混合使用大小写,首字母小写,每个内部单词的首字母大写。” 来自Java编程语言的代码约定

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章