java编码::Eclipse在第4行显示编译时错误-为什么?
Eclipse在第4行显示编译时错误—为什么? 我对编译器的理解是自上而下的。所以它应该在第1行显示编译时错误。但是第四行的优先级如何呢。 请澄清。谢谢java编码::Eclipse在第4行显示编译时错误-为什么?,java,Java,Eclipse在第4行显示编译时错误—为什么? 我对编译器的理解是自上而下的。所以它应该在第1行显示编译时错误。但是第四行的优先级如何呢。 请澄清。谢谢 我认为在第4行有语法错误,所以编译器首先检查表达式的语法,这样你们就知道这不是一种正确的方式来处理那个样的字符(“Hello”) 你们是说为什么编译器在第一行和第二行并没有显示错误。这是因为第1行和第二行的语句在语法上并没有错误。有语义上的错误,也就是逻辑上的错误 所以根据我的说法,编译器首先倾向于代码的语法错误。我希望您能理解它(语法和语义)
所以根据我的说法,编译器首先倾向于代码的语法错误。我希望您能理解它(语法和语义)。要回答这个问题,我们需要了解java编译器在词法分析过程中如何处理
字符
理想情况下,编译器只希望字符
只有一个字符,所以它会扫描打开的“
及其结尾
在上面的例子中,它抛出错误,因为分析器
标记了一个错误,指出-它找到了多个字符,导致“未关闭的字符文本”
,不幸的是,这是在编译器实际检查强制转换异常
或类型不兼容之前发生的
可怜的IDE
不知道幕后发生的一切,这让它更有优先权
通过将“
更改为”
,您可以处理所有错误:
在上述情况下,Lex高兴地向前移动。地狱是一个字符串。一个字符(character)只有一个字符的代码,比如“\n”我知道“地狱”是一个字符串,所以它抛出了编译错误。我的问题是在这段代码快照中,第1行有编译错误。但是在Eclipse中,第4行显示了编译时错误。那么为什么呢?@user2277872,我相信OP的意思是它应该说第1行有错误,'因为它将true赋值给char变量。&当我在Intellij IDEA(不同的IDE)中编写此代码而不是在Eclipse中编写此代码时,第1行也出现编译错误。谢谢。.我得到了答案。
public static void main(String[] args){
char a=true;//Line 1
char b=null; //Line 2
char c='\n'; //Line 3
char d='Hell'; //Line 4
}
char a=true;//Line 1
char b=null; //Line 2
char c='\n'; //Line 3
char d="Hell"; //Line 4