避免在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