我有一个正在处理的 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/