我具有以下Java类层次结构:
package packagea;
public class A{
private int id;
protected int getId(){return id;}
public void somePublicMethod1();
}
package packageb;
public class B{
public void useId(A aObj){
aObj.getId(); //can't access
}
public void somePublicMethod2();
}
我想防止用户访问A类的ID,但是我想在B类中使用此ID。但是B不会扩展A,并且它们不在同一包中。
一种可能的解决方案是将A和B放在同一包装中,并将getId的可见性更改为受包装保护。但是我不想将所有要使用A的id的类放入同一包中。
有什么方法可以指定一些可以访问A的ID的类,而另一些则不能?