据我所知,在同一作用域中声明同名的局部变量是非法的。我编写了这个非常简单的类,是的,IDE 确实在 int i = 10;
旁边显示了一个错误。但是当我运行代码时,一切似乎都很好。
public class VariableWithSameName {
static void myMethod(int i){
int i = 10; //error: variable i already defined in method
}
public static void main(String[] args){
}
}
只有当我调用myMethod
时才发生运行时错误。
public class VariableWithSameName {
static void myMethod(int i){
int i = 10; //error: variable i already defined in method
}
public static void main(String[] args){
myMethod(1);
}
}
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - variable i is already defined in method myMethod(int)
那么为什么运行第一个版本不会导致运行时错误?
最佳答案
因为在运行时。您从未将您的方法称为“VariableWithSameName”,这就是原因。仅当系统运行时出现错误时才会发生运行时错误。但是编译时错误将确定编译期间可能发现的所有可能的错误
关于java - 同一范围内的同名局部变量,IDE 显示错误,但当我运行程序时,没有运行时错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39908687/