Java中的静态导入

Aam*_*mir 1 java compilation

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;,它运行正常,并按预期显示长数据类型的最大值,但与上述导入其显示错误.

Ada*_*old 7

问题是在这种情况下必须明确说明要导入的内容,因为两个类都有一个MAX_VALUE常量.

如果您打开源代码,您将看到.

由于您无法在java中分配别名,因此您无法使用Integer.MAX_VALUE/ Long.MAX_VALUE.

只是旁注:我不建议static导入Integer.MAX_VALUE(也不Long.MAX_VALUE)因为如果你有一个相当大的课程并且在中间你引用MAX_VALUE那么将来有人会挠头问"我们谈论的是谁的最大价值?"