首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保护jar中的内部类变量

保护jar中的内部类变量
EN

Stack Overflow用户
提问于 2012-09-21 18:03:49
回答 2查看 308关注 0票数 0

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

来自:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html的访问级别以下

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

我们考虑去掉特定变量的所有getter方法,并在其他类传递对自身的引用时,使用setter和构造函数将变量值赋给这些类。显然,它们将是最终的课程。这样,所有需要变量值的对象都有自己的私有副本。

我想知道有没有更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-21 18:07:53

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

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

如果你想保密,千万不要把它放在任何人执行的程序的变量中。把它放在你们自己的机器上。

票数 7
EN

Stack Overflow用户

发布于 2012-09-21 18:24:30

- Reflection似乎就是这里的evil,使用它可以访问任何variable,甚至可以使用private访问修饰符。

- Four access controls,如privatedefaultprotectedpublic是在Java more中引入的,作为支持Core Object Oriented Concept的工具,如InheritanceEncapsulation等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12528390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档