나는 해시/동등성 테스트의 일부가되어야하는 필드를 식별함으로써 컴파일 타임 (APT 사용) 동안 equals/hashcode/toString 메소드를 생성하는 어딘가 사람들을 읽었다 고 생각한다. 나는 (? 내가 꿈 수도) 웹에 그런 아무것도 찾을 수 없습니다 그렇게 할 수annotation을 사용하여 equals/hashcode/toString 생성하기
: 엔티티에 대한
public class Person {
@Id @GeneratedValue private Integer id;
@Identity private String firstName, lastName;
@Identity private Date dateOfBirth;
//...
}
는 (그래서 우리는 몇 가지를 exlude 할 id와 같은 필드).
또는 스칼라 케이스 클래스와 같은
는 값 오브젝트를, 즉 :@ValueObject
public class Color {
private int red, green, blue;
}
파일은 쓰기보다 읽기 쉽게 될뿐만 아니라, 그러나 그것은 또한 모든 속성이 같음/해시 코드의 일부임을 보장하는 데 도움이 (나중에 다른 속성을 추가하는 경우, 그에 따라 메소드를 업데이트하지 않아도됩니다.)
APT가 IDE에서 잘 지원되지 않는다고 들었지만 중요한 문제로 보지 않을 것입니다. 결국 테스트는 주로 연속 통합 서버에 의해 실행됩니다.
이것이 이미 완료되었는지와 그렇지 않은 경우 어떤 생각입니까? 감사합니다.
흥미로운 접근 방식. 성능에 미치는 영향이 무엇인지 궁금합니다. –