는 다음과 같은 클래스를 감안할 때 동일스칼라 케이스 클래스 구현
val newAtttributes : List[EntityAttribute]
val withoutIds : List[EntityAttribute]
println("without: " + withoutIds)
println("new: " + newAtttributes)
val differences = newAtttributes.diff(withoutIds)
println("diff: " + differences)
if(newAtttributes.size == 1 && withoutIds.size == 1){
println("==: " + (newAtttributes.get(0) == withoutIds.get(0)))
println("equals: " + (newAtttributes.get(0).equals(withoutIds.get(0))))
println("hequals: " + (newAtttributes.get(0).hashCode == withoutIds.get(0).hashCode))
}
내가 예상 차이 출력 99 100 시간 초과를 얻을. 가끔씩 diff 함수는 빈리스트를 리턴해야 할 때 빈리스트를 반환 할 것이다.
예 : I 안정적으로 보통 약 10-18 반복 한 후이 오류를 재현 할 수
without: List(EntityAttribute(428861607,-1147340381,None,120224,None,120224,56,-356863126,None,120224,None))
new: List(EntityAttribute(428861607,-1147340381,None,120224,None,120224,23,424930523,None,120224,None))
diff: List()
==: false
equals: false
hequals: false
. 두 목록은 서로 다른 출처에서 나오므로 서로 다르게 구성됩니다. 나는 그것이 자동 권투 또는 나쁜 hashCode 구현과 관련이 있다고 추측하지만 나는 진전없이 2 일 동안 내 머리를 벽에 부딪 치고있다.
스칼라 2.9.0-1을 사용하고 있습니다.
우리는 실제로 문제를 재현 할 수 있도록 실제 값을 인쇄 할 수 있습니다 ... –
'ModelWithId {'?를 확장 한 후에'}'를 잊지 않았습니까? –