正在编写一个库,其中有一个包含多个类的包,其中一个类是最终类Point(它被许多其他类使用,但在其包之外没有公共(public)访问权限 在本例中com.ve.free)
现在,当我导入最终的 jar 时,我意识到,如果使用我的 lib 的开发人员也在其项目中创建了一个包 com.ve.free,那么他可以 也使用我的类 Point...
我认为这是我的代码中的一个漏洞,但我该如何避免呢?
提前致谢..
最佳答案
通常这不是问题。 Visibiliti 修饰符可以保护我们免受意外错误的影响。如果有人故意想违反规则,那是无能为力的。
但是如果您确实想要您所要求的内容,您可以设计您的库以与自定义类加载器一起使用。您所有的 secret 类都应该加载到这个自定义类加载器中。不幸的是,它无法保护您免受反射
的影响。
但是你应该思考一下利润是否大于成本?
关于java - 向实现者隐藏库包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39271624/