Java 语法错误,插入";EnumBody“;完成BlockStatement
上面导入的代码的第一部分是包含main方法的tester类。其余的代码是我试图从tester中运行的代码,我不断遇到以下错误:Java 语法错误,插入";EnumBody“;完成BlockStatement,java,Java,上面导入的代码的第一部分是包含main方法的tester类。其余的代码是我试图从tester中运行的代码,我不断遇到以下错误: 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");
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;
}
}
}
如何修复该错误?您缺少
getSum()末尾的右括号。
这会引发异常,因为您试图在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;
}
另外,正如David Wallace在评论中指出的,不要忘记在课程结束时去掉额外的花括号
作为补充说明,如果您使用像Eclipse这样的IDE,这些错误更容易发现。您缺少了
getSum()末尾的右括号。
这会引发异常,因为您试图在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;
}
另外,正如David Wallace在评论中指出的,不要忘记在课程结束时去掉额外的花括号
作为补充说明,如果您使用像Eclipse这样的IDE,这些错误会更容易发现。根本不知道为什么人们会因为某种原因认为某个问题在他们下面或诸如此类的原因而否决该问题。这是一个完全正确的问题。即使是最有经验的程序员也会犯语法错误。碰巧我被带到这里是为了一个类似的错误,一个“;”来终止一个注释行,这导致了相同的消息
语法错误,插入“EnumBody”以完成BlockStatement似乎是默认的错误消息,因为出现了语法错误,使编译器非常困惑,以至于它无法告诉您正在尝试执行什么操作。一旦我明白了这一点,就很容易发现我以一个字母结束了一行;我不应该这样做,如果/当我再次看到这条消息时,我就会知道这意味着我犯了一个新手语法错误,并且不会出现需要查找的错误类别。这样的解释会帮助这个用户,如果这样的回答低于用户,请绕过这个问题。否决票是针对不好的问题和答案的,而不是针对那些你太好而永远不会犯的错误的问题。根本不知道为什么人们认为出于某种原因,认为某个问题不值得他们去做,或者诸如此类的原因,否决某个问题是合适的。这是一个完全正确的问题。即使是最有经验的程序员也会犯语法错误。碰巧我被带到这里是为了一个类似的错误,一个“;”来终止一个注释行,这导致了相同的消息
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;
}
语法错误,插入“EnumBody”以完成BlockStatement似乎是默认的错误消息,因为出现了语法错误,使编译器非常困惑,以至于它无法告诉您正在尝试执行什么操作。一旦我明白了这一点,就很容易发现我以一个字母结束了一行;我不应该这样做,如果/当我再次看到这条消息时,我就会知道这意味着我犯了一个新手语法错误,并且不会出现需要查找的错误类别。这样的解释会帮助这个用户,如果这样的回答低于用户,请绕过这个问题。否决票是针对糟糕的问题和答案的,而不是针对那些你太优秀而永远不会犯的错误的问题。检查你的大括号。不能在方法中声明方法。请检查大括号。您不能在方法中声明方法。当然,您还希望删除文件末尾的剩余大括号。我认为这可能不言而喻,但有一点很好:)。谢谢并添加了。我的代码现在可以工作了。我不得不整理出一些变量错误,但都很好。在我去StackOverflow之前,我向三个人展示了我的代码,但他们都没有看到(包括我),我仍然有点恼火。不过,非常感谢您的帮助,非常感谢:)当然,您还希望删除文件末尾的剩余大括号。我认为这可能不言而喻,但重点是:)。谢谢并添加了。我的代码现在可以工作了。我不得不整理出一些变量错误,但都很好。在我去StackOverflow之前,我向三个人展示了我的代码,但他们都没有看到(包括我),我仍然有点恼火。感谢您的帮助,非常感谢:)欢迎使用Stack Overflow!虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并指出哪些限制和假设适用。请尝试解释您做了什么,以及为什么应该这样做,以便阅读本文的人将了解代码是什么以及为什么是这样。尝试添加一些注释或解释欢迎使用堆栈溢出!虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并指出哪些限制和假设适用。请尝试解释您做了什么,以及为什么应该这样做,以便阅读本文的人将了解代码是什么以及为什么是这样。尝试添加一些注释或解释
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;
}