静态导入和类文件生成

时间:2014-04-23 06:10:50

标签: java

如果我们对类使用静态导入,编译器在编译实际类时是否会为静态导入的类生成一个类文件?

例如:

import static com.x.y.util.B.getIds();

public class A {
 ...
}

当编译器编译类A时,它是否也会生成B的类文件?

2 个答案:

答案 0 :(得分:0)

不,import语句不会导致编译器生成任何内容。想想看:如果没有源代码,编译器如何生成类?编译器按定义将源代码转换为可执行代码(或者在java的情况下为字节代码)。

BTW示例中静态导入的语法不正确。您不应在静态导入中使用()

import static com.x.y.util.B.getIds;

答案 1 :(得分:0)

当您在类中使用关键字导入或仅使用全名来使用某种类型时。您必须确保在编译期间,编译器在构建路径中具有这两个类。

静态导入允许您访问导入类的静态成员。而已。

class Bar {

 public static int getID() {
    return -1;
 }

}

静态导入

import static Bar.getID;

class Foo {

   private void foo() {
    int id = getID(); //instead of Bar.getID();
   }

}

Read more on Oracle docs