优雅的方法避免长对象名称

时间:2015-09-02 06:07:23

标签: java naming-conventions alias type-alias

我有一个类,我使用两个碰巧具有相同名称的对象。 一个是:

   com.google.api.services.calendar.model.Event

和另一个具有相同名称的3ed party对象,请说:

   com.some.other.package.Event

对两个对象使用导入不是一个好选择,因为它们会相互掩盖。 在整个代码中使用非常longggggg名称也不好看。

仅为了更改名称而创建“虚拟”类型:

public class CEvent extends com.google.api.services.calendar.model.Event {}     

似乎不是一个优雅的解决方案。

如何保留原始对象名称(Event)但使用较短的路径名?

3 个答案:

答案 0 :(得分:4)

在Java中,这是不可能的,唯一的方法是使用完全限定的类名。但是,您可以在其他基于JVM的语言中执行此操作,例如Scala:

import com.some.other.package.Event => OtherEvent

或Groovy

import com.some.other.package.Event as OtherEvent

答案 1 :(得分:3)

你不能缩短Java中的类名;您可以导入类名(不使用限定符使用它)或使用完全限定名。因此,至少有一个Event类必须通过其完全限定名称来引用。 (除非,如你所说,你将其中一个子类化为仅仅是为了节省打字。)

Java tutorials在讨论名称含糊不清时解决了这个问题:

  

如果一个包中的成员与另一个包中的成员共享其名称并且两个包都已导入,则必须通过其限定名称引用每个成员。

答案 2 :(得分:2)

Java提供了两种方式:

  1. 对每个您不想
  2. 的班级使用Fully Qualified Class Name
  3. class name用于一个班级,Fully Qualified Class Name用于其他班级
  4. Alternate,是Sub-class的另一个类,然后你可以使用新的子类名。 (导入子类)