有没有办法删除Java中对特定对象的所有引用?
作为示例...... tutor
对象的属性类型为Student
,称为myTutee
。
如果我在使用removeTutee
作为参数的方法Student
中工作,有什么办法可以从myTutee
属性中删除tutor
属性的值setTutee
对象,不使用tutor.java
protected Student myTutee;
public int getTuteeId() {
return this.myTutee.getId();
}
public void setTutee(Student x) {
this.myTutee = x;
}
?
希望我已经设法解释了我想要实现的目标,相当不错。非常感谢提前!
student.java
protected int studentId;
public int getId() {
return this.studentId;
}
...
classRoom.java
public void removeTutee(Student x) {
// can't reference any Tutor objects directly from here
// aiming to replicate tutor.setTutee(null)
// by only referring to Student x
}
...
{{1}}
答案 0 :(得分:1)
如果没有对教师对象的引用,您无法从教师中删除学生(将其设置为null
)。如果你想实现这一目标,那么你的ER model可能就错了。想想Tutor
是否与Student
课程相关联,您可以x.setTutee(null)
,这听起来也更好。另请参阅ORM策略。
如果您只有学生,您需要以某种方式至少获得班级List
的导师。通过这种方式你可以做到:
public void removeTutee(Student x) {
for(Tutor t: tutorList){
if(t.getStudent().getId() == x.getId()){
t.setTutee(null);
break;
}
}
}