如何查找成员所属的对象

时间:2019-01-17 11:36:20

标签: java reference member

class MySchool {
    ArrayList<MyTeacher> teacher;
    ...
}

class MyTeacher {
    ...
}

当我在MyTeacher实例上进行某些处理时,如何找到它们所属的MySchool实例? MyTeacher并不是独立存在的,它们是由MySchool创建的,但是我不希望MyTeacher成为MySchool的子类,因为这会使程序的其他部分混乱。

我可以在MyTeacher的每个实例中保存对MySchool的引用,但似乎有点不雅致,我想知道是否有一个简单的函数可以告诉我。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

实际上,引用是完成此操作的常规方法。每个老师可以拥有一所在所有老师之间都不都是唯一的学校,因此要知道该学校,应该添加参考。我不明白为什么这不优雅。

此外,教师可能没有一所学校,因此将参考设置为空,或者如果一位老师可以拥有多所学校,则需要列出学校列表作为参考。

如果您真的不想使用此参考,另一种选择是遍历所有学校,并搜索您感兴趣的老师。如果老师只能在一所学校教书,则在找到该老师后可以停止搜索,否则您必须在遍历所有学校和老师的同时构建列表。这是一个非常微不足道的解决方案,仅在要最小化内存时才应使用。处理时间会大大增加。

答案 1 :(得分:0)

JVM不会跟踪此类信息(在垃圾回收期间除外),因此,除了在“成员”类中保持反向引用外,没有其他方法。

如果您需要这些信息,那么保留这样的参考资料不会有任何问题。