避免在Java中重复导入:inheritance导入?
有没有办法“inheritance”import?
例:
常用枚举:
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 { ... }
我可以使用经典的静态最终常量,但也许有一种方法可以使用具有相同方便性的常用枚举。
import
s只是帮助编译器查找类。 它们对单个源文件是活动的,与Java的OOP机制没有任何关系。
所以,不,你不能“inheritance” import
不,您不能inheritance导入。 如果要在不使用完全限定名称的情况下引用类文件中的类型,则必须显式导入它。
但在你的例子中,这很容易说
public Sub extends Base { public Sub() { register(Constant.TWO, "blabla"); // without import: Constant.TWO } }
如果您正在使用Eclipse,请使用“组织导入”( Ctrl + Shift + O )让IDE为您执行导入(或使用代码完成( Ctrl + Space )