语法错误,插入“ EnumBody”以完成BlockStatement

问题描述 投票:1回答:3
public class SumLineTester {
/**
 * @param args
 */
public static void main(String[] args) {
       // TODO Auto-generated method stub
       SumLine test = new SumLine("5 8 3 2 1");
       System.out.println(test.getSum());
    }
}


import java.util.Scanner;

public class SumLine {
    private String line;

    public SumLine(String s) {
        line = s;
    }

    public int getSum(){
        int sum = 0;
        Scanner chop = new Scanner(line);

        while(chop.hasNextInt()){
            sum= sum + chop.nextInt();
        }
        return sum;

    public String getLine(){
        return s;
    }

    public String toString(){
        return line;
    }
 }
 }

import上方的代码的第一部分是包含我的main方法的测试器类。其余的是我试图从测试器运行的代码,但我不断收到此错误:

Syntax error, insert "EnumBody" to complete BlockStatement

at SumLine.getSum(SumLine.java:17)
at SumLineTester.main(SumLineTester.java:10)

如何解决该错误?

java
3个回答
4
投票

您缺少getSum()末尾的大括号

public int getSum(){
    int sum = 0;
    Scanner chop = new Scanner(line);

    while(chop.hasNextInt()){
        sum= sum + chop.nextInt();
    }
    return sum;
^ \\no close brace

public String getLine(){
    return s;
}

这将引发异常,因为您试图在getSum()方法中声明一个不允许的新方法。

只需像这样添加右括号:

public int getSum(){
    int sum = 0;
    Scanner chop = new Scanner(line);

    while(chop.hasNextInt()){
        sum= sum + chop.nextInt();
    }
    return sum;
}
^ \\close brace added

public String getLine(){
    return s;
}

而且,正如大卫·华莱士(David Wallace)在评论中指出的那样,别忘了在课堂结束时删除多余的花括号。

附带说明,如果使用像Eclipse这样的IDE,这些错误将更容易发现。


4
投票

完全不确定人们为什么认为对问题进行投票表决是适当的,出于某种原因,认为该问题在他们之内或如此。这是一个完全有效的问题。即使是最有经验的程序员也会犯语法错误。碰巧我是一个类似错误的领导者;终止注释行,导致出现相同的消息。

语法错误,插入“ EnumBody”以完成BlockStatement似乎是默认错误消息,它是由于语法错误而引起的,它使编译器严重混淆,以致于无法分辨您在尝试什么去做。一旦理解了这一点,就很容易发现我以;结尾。我应该没有的,如果/当我再次看到此消息时,我将知道这意味着我犯了一个菜鸟语法错误,并且没有要查找的错误类别。这样的解释将对这个用户有所帮助,如果这样的答案在用户的下面,请绕开该问题。否决票是针对错误的问题和答案,而不是针对您永远无法犯的错误的问题。


0
投票

我如何启动InternetExplorer浏览器。它会部分启动浏览器,但随后会停止,并显示以下消息:这是WebDriver服务器的初始起始页。

有人可以帮忙。

先谢谢您。

© www.soinside.com 2019 - 2024. All rights reserved.