在尝试在另一个方法中运行方法时出错“此方法需要正文而不是分号”

时间:2015-07-21 17:43:13

标签: java methods

我有这个方法:

public void finalSuma(){
    finalSum.set(0, ((SO.get(0)+SO.get(1)+SO.get(2)+SO.get(3)+SO.get(4)+SO.get(5)+SO.get(6)+SO.get(7)+SO.get(8)+SO.get(9)+SO.get(10)+SO.get(11)+SO.get(12)+SO.get(13)+SO.get(14))));
    finalSum.set(1, (EQ.get(0)+EQ.get(1)));
    finalSum.set(2, (GR.get(0)+GR.get(1)+GR.get(2)+GR.get(3)+GR.get(4)+GR.get(5)));


    labelfinal.setText("ROF: "+(finalSum.get(0)+finalSum.get(1)+finalSum.get(2)+finalSum.get(3)));
}

我试图在这个其他方法中运行它:

public JRadioButton createIOB(final ArrayList<Double> z, final JLabel d, String title, final int x, final double y ) {
    JRadioButton button = new JRadioButton(title);
    button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            z.set(x, y);
            d.setText("IOB:"+(IOB.get(0)+IOB.get(1)+IOB.get(2)+IOB.get(3)+IOB.get(4)+IOB.get(5)+IOB.get(6)+IOB.get(7)+
                    IOB.get(8)+IOB.get(9)+IOB.get(10)+IOB.get(11)+IOB.get(12)+IOB.get(13)+IOB.get(14)+IOB.get(15)+IOB.get(16))+"% ");
                }  
         finalSuma();
    });
    return button;
}

但是当我将finalSuma()添加到createIOB()时,编译器会抛出此错误“此方法需要正文而不是分号”,这只发生在我尝试在此方法中运行它时如果我在另一个中运行它部分代码工作正常,任何想法发生了什么?

1 个答案:

答案 0 :(得分:4)

您对finalSuma();的调用不在actionPerformed方法之内,但仍在匿名内部类的正文中。编译器认为你试图声明一个方法,而不是调用一个方法,所以它认为你需要一个方法体。

看起来您想要调用该方法,而不是声明它,因此将其移到}方法的结尾actionPerformed之上。

    finalSuma();
} // end actionPerformed