我在A
包中有a
个类。
我在B
包中有a.b
课程后。 B
包含方法m()
。
我想在内部调用m()
,仅在类A
内调用。确切地说,我不想将m()
设置为public
。
有可能吗?
对不起标题。我没有找到更好的东西。
编辑以澄清:A
和B
类必须由开发人员使用(他们构成API)并在A
内部我有一个私有方法来计算修改B
对象,但开发人员无法调用此对象。 a
和a.b
个套餐除了相应的文件夹是一个在另一个内部之外还有其他关系吗?
Edit2:类A
包含List<B>
。 A
是必须与服务器通信的类,它使用值进行响应。 A
必须在列表中的每个元素中插入此值。
答案 0 :(得分:1)
除非A
子类B
(我不会仅仅为了继承而这样做),A
和B
之间基本上没有“特殊”关系,所以没办法这样做,我很害怕。
你到底需要保护什么?是不是不相信自己或同事不在合适的时间调用方法,或者更强大的东西?您可以在执行时检查堆栈,尽管这在内联等方面很危险,可能会弄乱 - 而只会在执行时。
答案 1 :(得分:0)
有一种方法可以使用反射和一点点黑客来做到这一点,但这样做会非常糟糕。 我可以建议阅读更多有关访问级别的内容
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
答案 2 :(得分:-1)
使m受保护并使A扩展B.这对您的模型有用吗?