java - 保护jar中的内部类变量

标签 java jar namespaces

我们在类中有一个 getter 方法。 在同一个 JAR 中,我们希望可以通过无标识符访问级别从同一包和子包访问该变量。

低于以下访问级别:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

我们的问题是,如何阻止某人获取已编译的 .JAR、创建具有相同包命名空间定义的类以及能够通过 getter 访问我们的变量?

我们考虑摆脱特定变量的所有 getter,并在其他类传递对自身的引用时,将变量值赋予具有 setter 和构造函数的其他类。显然,他们将是最后一课。这样,所有需要变量值的对象都有自己的私有(private)副本。

我想知道是否有更好的方法?

最佳答案

访问控制修饰符(publicprivateprotected)并不是作为安全工具,而是作为 OO 设计工具。它们用于实现 OO 模式,例如封装、继承。

即使没有任何 getter 和私有(private)变量,任何 Java 开发人员都可以使用反射来访问该变量。

如果您想保守某些 secret ,请不要将其放入任何人执行的程序的变量中。将其保留在您自己的计算机上。

关于java - 保护jar中的内部类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12528390/

相关文章:

java - Gmail 登录自动化代码卡在电子邮件字段中

java - 无法加载依赖类 com/jcraft/jsch/Logger

java - 提取一个 JAR 文件,可能使用 CL 上的 WINRAR

php - 需要在所有 Controller Laravel 的顶部包含输入

typescript - 为什么要导出同名的类和命名空间?

java - 如何在二叉树中搜索一个节点并返回它?

java - 解码正则表达式 - ^[a-zA-Z0-9 "'&!#$%()*+,-./:;? @[\\]^_`{|}~]+$

java - 计算并行程序的运行时间和cpu时间

java - jar 文件(如 .net 程序集)可以通过编程方式进行版本控制吗?

c++ - Typedef 不是命名空间的成员