避免在Java中重复导入:继承导入?
有没有“继承”导入的方法 示例: 通用枚举:避免在Java中重复导入:继承导入?,java,inheritance,import,enums,Java,Inheritance,Import,Enums,有没有“继承”导入的方法 示例: 通用枚举: public enum Constant{ ONE, TWO, THREE } 使用此枚举的基类: public class Base { protected void register(Constant c, String t) { ... } } 需要导入以方便使用枚举常量的子类(无枚举名称): 和另一个具有相同导入的类 import static Constant.*; // want to avoid this
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 AnotherSub extends Base {
...
}
我可以使用经典的静态final常量,但也许有一种方法可以同样方便地使用公共枚举。不,您不能继承导入。如果要引用类文件中的类型而不使用完全限定名,则必须显式导入它 但在你的例子中,这很容易说出来
public Sub extends Base {
public Sub() {
register(Constant.TWO, "blabla"); // without import: Constant.TWO
}
}
import
s只是帮助编译器查找类。它们对于单个源文件是活动的,与Java的OOP机制没有任何关系
因此,不,您不能“继承”
import
s如果您使用Eclipse,请使用“组织导入”(Ctrl+Shift+O)让IDE为您进行导入(或使用代码完成(Ctrl+Space)如果您使用IDE(比如Eclipse),则在使用该类时会自动添加导入。更好的是,将其设置为“保存操作”因此,每次保存文件时,Eclipse都会对它们进行组织。这一点和“保存”上的格式设置有助于节省思考此类事情的大脑周期:)
public Sub extends Base {
public Sub() {
register(Constant.TWO, "blabla"); // without import: Constant.TWO
}
}