我知道这当然不是一个好的做法,但是 Java 是否提供了任何机制来防止访问包私有(private)方法/属性?如果不是,这是否意味着:
package com.other_people_other_company;
public class MyClass {
// Let's hack! Access all package privates
}
有效吗?
编辑:
答案中提到:
Name: myCompany/myPackage/
Sealed: true
这对我来说是新信息。但是,如果我通过分发我的一 jar 并将其他人的包裹密封在那里来进行破坏怎么办?例如。 名称:org.apache 密封:true
最佳答案
假设 .JAR 分发,您可以 seal the packages将以下行添加到 META-INF/MANIFEST.MF
中:
Name: myCompany/myPackage/
Sealed: true
一些注意事项:
- 每个包都需要自己的条目。
- 这并不能阻止狡猾的人从 list 文件中删除这些行并在内部重新分发它。如果这是一个问题,您可能需要研究一些 self 验证技术,例如强制密封包中的类以检查 list 是否未受影响。
关于java - 把我的类放到别人的包中才能访问包可见的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34836363/