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并发送给客户。
客户将jar添加到他正在构建的项目中,并编写如下代码
package com.xyz.utils;
public class customer_class
{
int Y = (new A()).a;
}
上面的代码正确吗?
我的问题是,我们如何使声明为包私有的变量在其他人使用包时不可见。
答案是"不"-你无法阻止他们这样做。
一般情况下无法完成。我认为,您可以在jar清单中密封包"com.xyz.utils",以告诉用户:作为最佳实践,不要在密封的包中定义他们的类。但是您不能限制库的用户这样做。