Я использую Lombok для генерации реализаций и hashcode . Я также закрепляю его, используя EqualsVerifier. < /P>
В одном из моих классов я использую < /p>
@EqualsAndHashCode(callSuper = true, of = {"e", "f"})
public class MyClass3 extends MyClass2
< /code>
i test < /p>
@Test
public void testEqualsAndHashCode() {
EqualsVerifier.simple()
.forClass(MyClass3.class)
.withOnlyTheseFields("a", "b", "c", "d", "e", "f")
.verify();
}
< /code>
Где A, B является частью класса1 и C, D является частью класса2. К сожалению, тест не удается с < /p>
java.lang.AssertionError: EqualsVerifier found a problem in class com.project.Class3.
-> equals throws MockitoException when field e is null.
< /code>
Я не понимаю поведения равных, так как E проверяется на NULL. Какие -нибудь подсказки? К сожалению, эта настройка работает. < /P>
@EqualsAndHashCode(of = {"a", "b"})
public class MyClass1 {
String a;
String b;
}
@EqualsAndHashCode(callSuper = true, of = {"c", "d"})
public class MyClass2 extends MyClass1 {
String c;
String d;
}
@EqualsAndHashCode(callSuper = true, of = {"e", "f"})
public class MyClass3 extends MyClass2 {
String e;
String f;
}
< /code>
вместе с этими тестовыми классами. < /p>
class MyClass1Test {
@Test
public void testEqualsAndHashCode() {
EqualsVerifier.simple()
.forClass(MyClass1.class)
.withOnlyTheseFields("a", "b")
.verify();
}
}
class MyClass2Test {
@Test
public void testEqualsAndHashCode() {
EqualsVerifier.simple()
.forClass(MyClass2.class)
.withOnlyTheseFields("a", "b", "c", "d")
.verify();
}
}
class MyClass3Test {
@Test
public void testEqualsAndHashCode() {
EqualsVerifier.simple()
.forClass(MyClass3.class)
.withOnlyTheseFields("a", "b", "c", "d", "e", "f")
.verify();
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... d-hashcode
Equalslifier не удастся на Lombok, сгенерированные equals и hashcode [закрыто] ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как переопределить Equals и HashCode в классах, сгенерированных Java протокола буфера
Anonymous » » в форуме JAVA - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-