java - 在不过分冗长的情况下消除类歧义

标签 java namespaces import

我有一个正在处理的 Java 库,其目录结构如下所示:

/com
  /example
    /LibX
      Server.java
      Client.java

现在,从一个使用上述类的项目来看,在我看来,导入 com.example.LibX.* 并使用 Client client = new Client(...) ; 有点模棱两可,因为“Client”可能意味着任何东西。因此,我尝试了以下操作,但只收到“找不到包”错误:

import com.example.*;

LibX.Client client = new LibX.Client(...);

可以按照我描述的去做吗?或者是否有另一种方法可以在不使用 com.example.LibX.Client 的情况下消除歧义?

最佳答案

Java 包没有层次结构,即使它们有时看起来像层次结构。正如您所建议的那样,您不能导入包的“树”。您要么需要导入带有通配符的特定包,要么导入特定的类名,要么直接在代码中使用完全限定的类名。

以下内容不含糊,被认为是最佳实践:

import com.example.LibX.Client;

...

Client client = new Client(...);

在 IDE 可以为您组织导入的世界中,没有理由不明确声明它们。

关于java - 在不过分冗长的情况下消除类歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6168369/

相关文章:

php - 在 PHPUnit 中使用 namespace 时“找不到类”

python - 运行python脚本时自动导入模块?

java - 在 Eclipse 中将 joptimizer 作为外部 JAR 文件导入失败

java - Android Studio 无法解析导入 org.junit.Before 中的符号 'Before'

javascript - 是否可以使用 firebase 通过免费帐户进行网络抓取?

java - 如果时钟更改/调整,我可以收到通知吗?

java - 获取Json字段的值

asp.net - 如何在web.config中定义using语句?

java - xquery 转换在元素中创建空命名空间

javascript - System.import() 和 import() 的区别?