public class Test{
public static void main(String[] arg){
System.out.println("Alexander The Great");
}
}
在此代码中,如果删除字符串中的第一个引号,则会出现3个错误。
1.“)”预期
2.未封闭的字符串文字
3.没有声明
好的,我了解上述错误。
如果删除字符串中的第二个引号,也会出现3个错误。
1.未封闭的字符串文字
2.';'预期
3.解析时到达文件末尾
我理解1和2,但是为什么3?
大括号缺失时通常不会发生吗?但显然,我的括号数目正确。
另外,为什么第一种情况不给出错误“解析时到达文件末尾”?
附言我正在使用Java 1.6的jGrasp。
最佳答案
省略第一引号可能会使解析器有更多的工作空间,因为它将尝试将“亚历山大”作为引用。一旦到达空格,唯一合法的东西就是表达式的其余部分,但它认为它是另一个标识符。
可能正在插入奖励)
尝试恢复;取决于实现。
删除最后一个引号会将解析器发送到行尾。与其尝试关闭该语句,不如让它丢失一点并旋转,并且无法恢复并命中文件末尾。
在我看来,由于Java字符串仅是单行,所以它似乎可以做很多相同的事情,并在这种情况下尝试关闭字符串和/或语句,从而更加优雅地恢复。我可能只是想念一些明显的东西。
关于java - Java编译时错误: reached end of file while parsing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8032555/