在其他包中使用包时,限制对包私有变量的访问

时间:2012-01-26 15:06:18

标签: java

公司xyz创建了一个包

com.xyz.utils.

在两个单独的文件中声明了两个类。它们有一些变量作为包私有。这样A类中的变量X就可以在同一个包的B类中使用。

package com.xyz.utils;
public class A{
int a=10;
}

package com.xyz.utils;
public class B{
int b = (new A()).a;
}

这两个文件被编译成一个罐子并发送给客户。

客户将jar添加到他正在构建的项目中,并编写如下代码

package com.xyz.utils;

public  class customer_class
{
     int  Y = (new A()).a;
}

以上代码是否正确?

我的质疑是。我们怎样才能将声明为包私有的变量设置为在使用包时对其他人不可见。

2 个答案:

答案 0 :(得分:0)

答案是“不” - 你无法阻止他们这样做。

答案 1 :(得分:0)

一般情况下无法完成。我想,你可以在jar清单中seal the package'com.xyz.utils'来告诉用户:不要在密封包中定义他们的类作为最佳实践。但是你不能限制你的库的用户这样做。