避免长对象名称的优雅方式(完全限定 Class 名称)
Elegant way to avoid long object names (Fully Qualified Class Name)
我有一个 class,我在其中使用了两个碰巧具有相同名称的对象。
一个是:
com.google.api.services.calendar.model.Event
和另一个同名的3ed方对象,说:
com.some.other.package.Event
对两个对象都使用导入不是一个好的选择,因为它们会相互屏蔽。
在整个代码中使用非常长的名称看起来也不太好。
创建 "dummy" 类型只是为了更改其名称:
public class CEvent extends com.google.api.services.calendar.model.Event {}
似乎不是一个优雅的解决方案。
如何在保留原始对象名称(事件)的同时使用较短的路径名称?
您不能在 Java 中缩短 class 个名字;您可以导入 class 名称(不带限定符使用它)或使用完全限定名称。因此,至少有一个 Event
class 必须使用其完全限定名称来引用。 (除非,如您所说,您子class其中之一只是为了节省打字时间。)
Java tutorials 在讨论名称歧义时解决了这个问题:
If a member in one package shares its name with a member in another package and both packages are imported, you must refer to each member by its qualified name.
在Java中是不可能的,唯一的办法就是使用类的完整限定名。但是,您可以在其他基于 JVM 的语言中执行此操作,例如 Scala:
import com.some.other.package.Event => OtherEvent
或Groovy
import com.some.other.package.Event as OtherEvent
Java提供2种方式:
- 对每个 class 使用
Fully Qualified Class Name
,这是您不想要的
- 一个class使用
class name
,另一个 使用Fully Qualified Class Name
Alternate,就是Sub-class另一个class,然后就可以用新的subclass名字了。 (导入子class)
我有一个 class,我在其中使用了两个碰巧具有相同名称的对象。 一个是:
com.google.api.services.calendar.model.Event
和另一个同名的3ed方对象,说:
com.some.other.package.Event
对两个对象都使用导入不是一个好的选择,因为它们会相互屏蔽。 在整个代码中使用非常长的名称看起来也不太好。
创建 "dummy" 类型只是为了更改其名称:
public class CEvent extends com.google.api.services.calendar.model.Event {}
似乎不是一个优雅的解决方案。
如何在保留原始对象名称(事件)的同时使用较短的路径名称?
您不能在 Java 中缩短 class 个名字;您可以导入 class 名称(不带限定符使用它)或使用完全限定名称。因此,至少有一个 Event
class 必须使用其完全限定名称来引用。 (除非,如您所说,您子class其中之一只是为了节省打字时间。)
Java tutorials 在讨论名称歧义时解决了这个问题:
If a member in one package shares its name with a member in another package and both packages are imported, you must refer to each member by its qualified name.
在Java中是不可能的,唯一的办法就是使用类的完整限定名。但是,您可以在其他基于 JVM 的语言中执行此操作,例如 Scala:
import com.some.other.package.Event => OtherEvent
或Groovy
import com.some.other.package.Event as OtherEvent
Java提供2种方式:
- 对每个 class 使用
Fully Qualified Class Name
,这是您不想要的 - 一个class使用
class name
,另一个 使用
Fully Qualified Class Name
Alternate,就是Sub-class另一个class,然后就可以用新的subclass名字了。 (导入子class)