有没有办法“继承”进口?
示例:
Common enum:
public enum Constant{ ONE, TWO, THREE }
使用此枚举的基类:
public class Base {
protected void register(Constant c, String t) {
...
}
}
需要导入的子类才能方便地使用枚举常量(没有枚举名称):
import static Constant.*; // want to avoid this line!
public Sub extends Base {
public Sub() {
register(TWO, "blabla"); // without import: Constant.TWO
}
}
和另一个具有相同导入的类......
import static Constant.*; // want to avoid this line!
public AnotherSub extends Base {
...
}
我可以使用经典的静态最终常量,但也许有一种方法可以使用具有相同方便性的常用枚举。
答案 0 :(得分:15)
import
只是帮助编译器查找类。它们对单个源文件是活动的,与Java的OOP机制没有任何关系。
所以,不,你不能“继承”import
s
答案 1 :(得分:3)
不,您无法继承导入。如果要在不使用完全限定名称的情况下引用类文件中的类型,则必须显式导入它。
但在你的例子中,说
就很容易了public Sub extends Base {
public Sub() {
register(Constant.TWO, "blabla"); // without import: Constant.TWO
}
}
答案 2 :(得分:3)
如果您正在使用Eclipse,请使用“组织导入”( Ctrl + Shift + O )让IDE执行导入为你(或使用代码完成( Ctrl + 空间)