所以,这是一个例子。我在 HTTP
包中有一个库。我定义了库的子部分,例如包 HTTP.TCPProtocol
。现在我想使用 HTTP 包中的 TCPProtocol,这意味着我必须公开 TCPProtocol 功能。同时,不应将此功能导出给库的用户。
我该怎么做?我不想将我的整个库放入一个包中,因为我觉得单独的子包确实使代码更加结构化,并且在 eclipse 中导航更容易。但是四处浏览,我找不到一种方法可以在我的项目中公开函数,但不能将它们导出到我的项目之外。
编辑:鉴于我能够想出一个更好的例子,我正在更新 OP。
最佳答案
一种简单的方法是将您的“实用程序”方法列入白名单,以便它们仅接受特定类型的调用者实例。
package gameengine;
interface Whitelisted {} // marker
然后你的方法:
public void myMethod(Whitelisted caller, String arg)
并调用:
package gameengine.network;
class Foo implements Whitelisted {
...
Someclass.myMethod(this, "foo");
关于java - 有没有办法将 java 函数导出到库中的其他包,而不是库的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11322663/