равно, вы можете сделать что-то вроде

аюсь реализоватьequals метод для классов JavaBook а такжеChapter в моем приложении.Book имеет наборChapterс, аChapter имеет связанныйBook, Двунаправленная ассоциация показана ниже:

class Book{
    private String isbn;
    private String name;
    private Date publishDate;
    private Set<Chapter> chapters;
    ...

    public boolean equals(Object o){
        if(o == this){
            return true;
        }
        if (!(o instanceof Book)){
            return false;
        }
        Book book = (Book)o;
        if( (this.isbn.equals(book.getIsbn()) ) && (this.name.equals(book.getName())) &&(this.publishDate.equals(book.getPublishDate())) &&(this.chapters.equals(book.getChapters())) ){
            return true;
        }else{
            return false;
        }

    }
}

Теперь я попытался реализоватьequals заChapter:

public class Chapter {
    private String title;
    private Integer noOfPages;
    private Book book;
    ...

    public boolean equals(Object o){
         if(o == this){
            return true;
        }
        if (!(o instanceof Chapter)){
            return false;
        }
        Chapter ch = (Chapter)o;
        if((this.title.equals(book.getTitle())) && (this.noOfPages.intValue()== book.getNoOfPages().intValue())  ){
            return true;
        }else{
            return false;
        }
    }

}

Здесь мне интересно, нужно ли мне сравнивать книжное поле? Разве это не начало бесконечный цикл? Каков правильный способ реализацииequals метод для таких двунаправленных ассоциаций?

Ответы на вопрос(1)

Ваш ответ на вопрос