gpt4 book ai didi

java - 编译错误序列: Static compilation error coming after resolving access modifier error?

转载 作者:行者123 更新时间:2023-12-02 01:12:29 25 4
gpt4 key购买 nike

在下面的代码中:

public class ModifierNotAllowInMethodCheck {

private int pvtInt;

public static void method1() {
System.out.println("pvtInt = " + pvtInt);
int var1 = 10;
System.out.println("var1 = " + var1);
public int var2 = 20;
System.out.println("var2 = " + var2);
} // end of method1()

public static void main(String args[]) {
method1();
} // end of main()

} // end of class

编译时的语句

public int var2 = 20;

将出现第一个编译错误,然后是语句

System.out.println("pvtInt = " + pvtInt);

一旦我解决了第一个错误,就会出现编译错误。

问 - 为什么静态变量引用编译错误没有首先出现?

最佳答案

事情是:您假设编译器按照错误在源代码中出现的顺序给出错误。但这不是编译器的工作方式。

当然,当您有 5 个同类错误时,您可以期望按照行号的顺序得到它们。

但是当您有不同的类别时,编译器可以决定首先关注哪个类别。您会发现:与查看变量和范围界定相比,识别方法中错误修饰符要容易得多。

并注意:在方法体内有访问修饰符,这是一个语法问题。首先发现并报告纯粹的语法问题是有道理的。 pvInt 的事情更复杂,这是关于语义的!编译器需要完全了解类的(静态)字段,然后才能进行检查。

关于java - 编译错误序列: Static compilation error coming after resolving access modifier error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59164008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com