Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java,类在其他包中的可见性,但不在其他插件中_Java_Plugins_Visibility - Fatal编程技术网

Java,类在其他包中的可见性,但不在其他插件中

Java,类在其他包中的可见性,但不在其他插件中,java,plugins,visibility,Java,Plugins,Visibility,我有一个包含数据库设置(用户名、密码)的java类。我想在我的插件的所有包中都使用这个类,但我不希望其他插件可以使用它 我该怎么做?删除该类的public属性会将其隐藏在所有其他包中,而将其保留为public会将其暴露在所有其他插件中,这在我的情况下是不好的 难道没有像函数和变量保护这样的关键字吗 我该怎么做 不要在类中使用凭据,而是创建一个配置文件,并在需要时在类中使用它。如果数据库信息存储为纯文本变量,则设置什么可见性无关紧要。任何感兴趣的人都会很容易找到这些字符串 我不确定您要插入什么,但

我有一个包含数据库设置(用户名、密码)的java类。我想在我的插件的所有包中都使用这个类,但我不希望其他插件可以使用它

我该怎么做?删除该类的public属性会将其隐藏在所有其他包中,而将其保留为public会将其暴露在所有其他插件中,这在我的情况下是不好的

难道没有像函数和变量保护这样的关键字吗

我该怎么做


不要在类中使用凭据,而是创建一个配置文件,并在需要时在类中使用它。

如果数据库信息存储为纯文本变量,则设置什么可见性无关紧要。任何感兴趣的人都会很容易找到这些字符串

我不确定您要插入什么,但我使用的大多数平台都有一种方式来说明应该共享/隐藏哪些包。这是特定于平台的(Netbeans、Eclipse等)


除此之外,如果您将类/变量
设置为受保护的
,则只有同一
包中的类
或扩展的类才能使用它们。如果未设置可见性修饰符,则默认为package,并且使用仅限于同一个包中的类。

您不应在Java类中存储用户名密码(无论是什么)。请检查此答案以获得可能的解决方案。如果它碰巧是一个OSGi或NetBeans插件——它们有一个模块系统(OSGi:bundle),在模块级别上,可以指定哪些是公共的,哪些不是。另一个丑陋的技巧是使用自己的类加载器/工厂检查调用方,并在数据源类中检查是否使用了该类加载器。是的,它是一个OSGi插件。我使用EclipseRCP编写了一个应用程序,并希望现在将其分发给客户机,以便他们可以为其开发自己的插件。我不想让他们访问核心应用程序的DB设置,因为它包含许可信息。现在我将了解一下模块系统。