删除对象变量的所有实例

时间:2014-12-09 13:50:04

标签: java object reference attributes

有没有办法删除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}}

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;
        }
    } 
}