我有两个包 mg.networktest 和 mg.networktest.server,它们都需要访问同一个类来注册/序列化需要通过网络发送的类。我认为最佳实践是在服务器包上创建它并将其包含在客户端中。
但是我无法正确引用该类。我还尝试添加另一个包,但我认为这是不允许的。但它只是无法识别我的其他包裹。下面的导入全部得到导入mg.networktest.server无法解析
。我可以让它 import mg.networktest.*;
但这只是引用自身。
import mg.networktest.server; //This is the exact package
import mg.networktest.server.Network; //This is the physical class/.java name
import mg.networktest.server.Network.ChatMessage; //This is one of the classes inside the .java that needs to be included.
更清楚地说:
- 包 1:(mg.networktest.server) 有一个带有 ChatMessage 类的 Network.java。
- 包 2:(mg.networktest) 需要包 1 中的 ChatMessage 类。
- 软件包 2:(mg.networktest) 无法执行以下操作:
import mg.network.server.*;
。 - 如何在包 2 (mg.networktest) 中访问包 1 (mg.networktest.server) 中的类 ChatMessage?
最佳答案
如果您的导入语句导致编译错误,请验证以下内容:
- 您使用了正确的语法。对于单个类型名称,请使用语法
import TypeName;
。要根据需要从包或类范围导入类型名称,请使用语法import PackageOrTypeName.*;
。 - 您已经命名了当前存在的包和/或类。检查路径并检查拼写。
- 如果导入的类位于不同的 Eclipse 项目或库中,请验证它是否位于导入类项目的构建路径上。
- 重建包含导入和已导入类的项目。如果您启用了自动构建,则通常不需要这样做。
关于java - 无法从外部包导入/引用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956966/