【问题标题】:Importing two different classes with same name from different packages [duplicate]从不同的包中导入两个具有相同名称的不同类[重复]
【发布时间】:2012-12-18 11:52:41
【问题描述】:

我使用import java.util.logging.Logger 从包java.util.logging 中导入了类Logger。除此之外,根据要求,我需要从其他包中导入用户创建的类。但问题是,该类名也是Logger[在用户定义的包中创建]。我无权更改该用户定义的类和包的名称。两个类都有静态方法。

所以我需要导入两个类,那么有什么可行的解决方案呢?

【问题讨论】:

  • 使用完整的包名。比如“com.abc.xxx.Logger”

标签: java


【解决方案1】:

调用完整的类名,即package.class
例如,如果您要创建一个名为 File 的类,您仍然可以使用 java.io.File 而无需导入它。
导入只允许您使用较短的名称。一个类的全名前面加上它的包名

在你的情况下,你有:some.user.package.Logger,所以你可以完全像那样使用它。

some.user.package.Logger userLogger = new some.user.package.Logger();
java.util.logging.Logger realLogger = java.util.logging.Logger.getAnonymousLogger(); //or whatever...

【讨论】:

    【解决方案2】:

    您必须指定完整路径。

    Logger logger = new Logger();
    com.abc.Logger yourLogger = new com.abc.Logger();
    

    【讨论】:

      【解决方案3】:

      当使用同名但不同包的类之一时,

      使用完全限定的类名,例如:

      java.util.logging.Logger logger;
      mypackage.Logger myLogger;
      

      【讨论】:

        【解决方案4】:

        最好的方法是在你在类中使用它们的地方使用完全限定的类名,而不导入任何东西

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-12
          • 2014-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多