java编码::Eclipse在第4行显示编译时错误-为什么?

java编码::Eclipse在第4行显示编译时错误-为什么?,java,Java,Eclipse在第4行显示编译时错误—为什么? 我对编译器的理解是自上而下的。所以它应该在第1行显示编译时错误。但是第四行的优先级如何呢。 请澄清。谢谢 我认为在第4行有语法错误,所以编译器首先检查表达式的语法,这样你们就知道这不是一种正确的方式来处理那个样的字符(“Hello”) 你们是说为什么编译器在第一行和第二行并没有显示错误。这是因为第1行和第二行的语句在语法上并没有错误。有语义上的错误,也就是逻辑上的错误 所以根据我的说法,编译器首先倾向于代码的语法错误。我希望您能理解它(语法和语义)

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