【发布时间】:2017-03-04 21:27:25
【问题描述】:
是否有可能使用两个具有相同类名的类,而不必直接指定其中一个来自哪个包?
例如:
using com.org.TreeView;
...
TreeView tv = new TreeView();
reg.org.TreeView tvOrg = new reg.org.TreeView();
我不想每次都指定另一个TreeView 来自reg.org。
我想做的是,指定一些变量,它采用reg.org.TreeView 的类型,每次我需要创建reg.org.TreeView 时,我都使用这个变量而不是整个类型。当包根目录很大时,使用类的完整路径可能会很烦人。
【问题讨论】:
-
装饰器可能工作
-
检查这个问题,它完美地回答了它stackoverflow.com/questions/2447880/…
-
@JosepPrat:Java 不是 Python。
-
我的第一个想法是编写一个扩展
TreeView的子类(假设它不是final),并使用super(...)重写所有构造函数。如果任何公共方法采用reg.org.TreeView参数或返回reg.org.TreeView结果,仍然存在问题。如果这不是问题,那么您可以免费获得这些方法。 (静态方法除外。) -
好吧,让我们后退一步。你怎么会有一个你可以有模棱两可的类名的场景?这是一种代码味道,表明您可能应该在某个地方合并职责?
标签: java