包碰撞时的Java包私有访问修饰符行为

时间:2013-10-23 05:41:13

标签: java access-modifiers

让我们说,我在我的项目中使用第三方jar A.jar,其中一些成员(类,方法等)具有默认访问权限(包私有)。现在,如果我在项目中创建相同的包名,我可以使用来自A.jar的默认访问修饰符访问成员(我在Eclipse中使用Java Projects尝试了这一点)。

Oracle's document说:

  

如果一个类没有修饰符(默认的,也称为包私有),它只在自己的包中可见

这个特定的用例(也没有使用反射)也没有违反这个哲学,因为它不是A.jar的开发者想要的,因为她只想要她的包中的类访问这个特定的成员?  

这也意味着,package-private是一种便利机制,但不能用于保护数据等。

1 个答案:

答案 0 :(得分:0)

  

这个特定的用例(也没有使用反射)也没有违反这个哲学,因为它不是A.jar的开发者想要的,因为她只希望她的包中的类能够访问这个特别的成员?

如果她使用默认访问修饰符,她对保护默认成员的兴趣就会降低。