【问题标题】:Java - use two classes with equal name [duplicate]Java - 使用两个具有相同名称的类[重复]
【发布时间】: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


【解决方案1】:

不是因为它有歧义,你必须指定类包。

【讨论】:

  • 嗯,我想他已经知道了,他在问有没有办法解决它。
猜你喜欢
  • 2011-06-01
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多