import static java.lang.Integer.*;
import static java.lang.Long.*;
public class StaticImortError {
public static void main(String args []) {
System.out.println(MAX_VALUE);
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么这个程序显示编译时错误,如果我试图使用导入
import static java.lang.Integer.*;
import static java.lang.Long.MAX_VALUE;,它运行正常,并按预期显示长数据类型的最大值,但与上述导入其显示错误.
问题是在这种情况下必须明确说明要导入的内容,因为两个类都有一个MAX_VALUE常量.
如果您打开源代码,您将看到.
由于您无法在java中分配别名,因此您无法使用Integer.MAX_VALUE/ Long.MAX_VALUE.
只是旁注:我不建议static导入Integer.MAX_VALUE(也不Long.MAX_VALUE)因为如果你有一个相当大的课程并且在中间你引用MAX_VALUE那么将来有人会挠头问"我们谈论的是谁的最大价值?"