public class Ambiguity {
public static void main(String[] args) {
int Integer = 3;
System.out.println((Integer) null); // cast; prints "null"
System.out.println((Integer) - Integer); // subtraction; prints "0"
System.out.println((Integer) (-Integer)); // cast; prints "-3"
}
}
在 Java 中,我可以声明一个名为 Integer 的变量,然后编写可以转换为 Integer 类或涉及 Integer 变量的表达式的代码。Java如何解决类名和变量名之间的歧义?规范中是否有正式规则?这是一个特别的启发式的东西吗?我知道 C 编译器必须处理类似的问题,并且我知道他们如何处理它,但 Java 似乎更宽容。