我有一个类,它拥有一个私有(private)成员(它本身就是一个对象)。我想以合法的方式访问该成员并修改其属性。我想到的方法是让类使用其私有(private)成员调用我的类的方法(我想访问它)。
例如,我的类 ClassA
具有属性 mItem
。我想获取 ClassB
中的 mItem
实例,以便我可以在稍后的时间点调用 mItem.update()
(当用户更新 UI 上的某些内容)。从 ClassB
中,我想调用 ClassA
的方法(例如 passItem
),该方法实际上调用某个方法(例如 obtainItem(传递
)。但是,我想强制执行这一点,以便 mItem
的 ClassB
的 Item item)passItem
实现强制使用 mItem
调用 ClassB
的 obtainItem
。 p>
有什么想法吗?
最佳答案
如果您可以访问ClassA
的源代码,那么访问私有(private)成员的通常方法是有选择地添加 delegate您感兴趣的成员属性的 setter 和 getter 方法。
但是,如果您无法访问其源代码,事情就会变得更加复杂。执行此操作的标准方法是使用 Java reflection检索对私有(private)成员的引用。然而,这违反了 OOP 的一些原则,因为外部实体依赖于 ClassA
的实现。
关于java - 强制Java中的类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34564091/