首页 > 解决方案 > 如何找到成员所属的对象

问题描述

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

class MyTeacher {
    ...
}

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

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

谢谢您的帮助。

标签: javareferencemember

解决方案


实际上,参考是正常的做法。每个老师都可以有一个学校,这在所有老师之间不是唯一的,所以要知道那个学校,应该添加一个参考。我不明白为什么这不优雅。

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

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


推荐阅读