繁体   English   中英

避免长对象名称的优雅方法(完全限定的类名)

[英]Elegant way to avoid long object names (Fully Qualified Class Name)

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

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

和另一个同名的 3ed 方对象,说:

   com.some.other.package.Event

对两个对象都使用 import 不是一个好的选择,因为它们会相互屏蔽。 在整个代码中使用非常长的名称也不好看。

创建一个“虚拟”类型只是为了改变它的名字:

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

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

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

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

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

或 Groovy

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

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

Java 教程在讨论名称歧义时解决了这个问题:

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

Java 提供了两种方式:

  1. 为每个类使用Fully Qualified Class Name ,您不想这样做
  2. 对一个类使用class name ,对其他类使用Fully Qualified Class Name

或者,是将另一个类进行子类化,然后就可以使用新的子类名了。 (进口小类)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM