Java 如何只让一个类访问特定的API类

Java 如何只让一个类访问特定的API类,java,eclipse,api,dependencies,dependency-management,Java,Eclipse,Api,Dependencies,Dependency Management,我在包中有一个特殊的类:org.jdesktop.swingx.JXErrorPane 我使用了一个工厂类来调用JXerorPane类中的方法,同时我禁止任何其他类调用JXerorPane。需要使用JXerorPane类的任何其他类都需要调用工厂类 我在这个网站上发现:关于如何禁止访问特定的类或包,但它也会禁止我的工厂类 有没有一种方法只允许工厂类访问API类而禁止任何其他类?你的问题有点奇怪,但这是我的两分钱:访问修饰符应该是你的朋友。如果不希望类在包外部可见,则类级别的默认访问修饰符是有意义

我在包中有一个特殊的类:org.jdesktop.swingx.JXErrorPane

我使用了一个工厂类来调用JXerorPane类中的方法,同时我禁止任何其他类调用JXerorPane。需要使用JXerorPane类的任何其他类都需要调用工厂类

我在这个网站上发现:关于如何禁止访问特定的类或包,但它也会禁止我的工厂类


有没有一种方法只允许工厂类访问API类而禁止任何其他类?

你的问题有点奇怪,但这是我的两分钱:访问修饰符应该是你的朋友。如果不希望类在包外部可见,则类级别的默认访问修饰符是有意义的。默认构造函数会将对象的构造限制为仅在包内可见。我假设这是你在问题中提到的工厂的应用程序。工厂是用来创建对象的


至于将对方法的调用限制在工厂中,这不是工厂的正确应用。也许您正在寻找代理或委托模式。即使在这种情况下,访问修饰符也是您的朋友。我不知道你为什么想要如此复杂,但是你能控制
JXErrorPane
?如果是这样,您可以将其设置为
包私有
,并使用
公共
修饰符将您的
工厂
放在同一个包中。然后,只有同一软件包中的类(例如您的工厂)才能访问
JXErrorPane