java - 向实现者隐藏库包

标签 java package visibility

正在编写一个库,其中有一个包含多个类的包,其中一个类是最终类Point(它被许多其他类使用,但在其包之外没有公共(public)访问权限 在本例中com.ve.free)

现在,当我导入最终的 jar 时,我意识到,如果使用我的 lib 的开发人员也在其项目中创建了一个包 com.ve.free,那么他可以 也使用我的类 Point...

我认为这是我的代码中的一个漏洞,但我该如何避免呢?

提前致谢..

最佳答案

通常这不是问题。 Visibiliti 修饰符可以保护我们免受意外错误的影响。如果有人故意想违反规则,那是无能为力的。

但是如果您确实想要您所要求的内容,您可以设计您的库以与自定义类加载器一起使用。您所有的 secret 类都应该加载到这个自定义类加载器中。不幸的是,它无法保护您免受反射的影响。

但是你应该思考一下利润是否大于成本?

关于java - 向实现者隐藏库包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39271624/

相关文章:

java - 4个错误-: package com.google.android.gms.appstate ETC错误

javascript - 使用javascript控制div可见性样式

c# - 在 wpf 中从子控件中设置属性

javascript - 页面加载时默认隐藏所有div,显示:none doesn't appear to work

python - 将 native Git 二进制文件打包到应用程序中

java - 一个java包应该只有一个公共(public)类吗?

java - List<Long> 到 int 有损转换

java - 一般调试日志实践

java - Dijkstra 算法的文件输入

java - 确保不调用特定方法的自定义 lint 规则