утверждение в Java - PullRequest
       18

утверждение в Java

1 голос
/ 29 января 2012

Я создал строку утверждения, как показано ниже

String title = "A";
int year = 2009;
String director = "Zebra";    

VideoObj a = new VideoObj (название, год, директор);

Assert.assertFalse(a.equals(new VideoObj(title+"1", year,director)));

почему это не удается ??метод равных приведен ниже.

public boolean equals(Object thatObject) {
    if (!(thatObject instanceof VideoObj))
        return false;
    VideoObj that = (VideoObj) thatObject;
    return ((_title.equals(that.title())) && (_director.equals(that.director())) && (_year == that.year()));
}

но приведенный ниже оператор

Assert.assertFalse(a.equals(new VideoObj(title, year, director + "1")));

не ошибается?Кто-нибудь может объяснить, почему первый оператор assert терпит неудачу, а не второй?

Ответы [ 2 ]

2 голосов
/ 29 января 2012

Вы, вероятно, хотели использовать && вместо || в:

    return ((_title.equals(that.title())) || (_director.equals(that.director())) || (_year == that.year()));

В противном случае вы проверяете, что любой из заголовка, директора или года совпадает, а не все они .

1 голос
/ 29 января 2012

Не должно ли это быть ((_title.equals (that.title ())) && (_director.equals (that.director ())) && (_year == that.year ()))

Два видео равны, если заголовок И год И режиссер равны, а не когда только 1 из них ...

...