내 응용 프로그램은 "typesafe.config"를 사용하여 설정을 구문 분석 한 다음 Config
개체를 "ficus"를 사용하여 사례 클래스의 인스턴스로 변환합니다. 사례 클래스에는 현재 19 개의 생성자 인수가 있습니다. 모든 것이 정상적으로 작동합니다.케이스 클래스에 새 필드를 추가하려고하면 Ficus가 예외를 던지는 이유는 무엇입니까?
An exception or error caused a run to abort: MyCaseClass.<init>(Ljava/lang/String;Lscala/Option;Lscala/Option;IZLscala/collection/Seq;Ljava/lang/String;ILscala/concurrent/duration/FiniteDuration;ZLscala/Option;Lscala/Option;ILscala/Option;Lscala/concurrent/duration/FiniteDuration;Ljava/lang/String;Ljava/lang/String;II)V
java.lang.NoSuchMethodError: MyCaseClass.<init>(Ljava/lang/String;Lscala/Option;Lscala/Option;IZLscala/collection/Seq;Ljava/lang/String;ILscala/concurrent/duration/FiniteDuration;ZLscala/Option;Lscala/Option;ILscala/Option;Lscala/concurrent/duration/FiniteDuration;Ljava/lang/String;Ljava/lang/String;II)V
내가 "typesafe.config"를 볼 수 있습니다 올바르게에 내 새 필드를 구문 분석 : 내 "settings.conf"에 새로운 인수하고 새로운 해당 필드를 추가 할 때, 나는 다음과 같은 예외를 얻을 Config
개체 그러나 ficus는이 예외를 throw합니다. 새 필드와 새 사례 클래스 생성자 인수는 정확히 동일한 이름을 갖습니다.
이것이 일어날 수있는 이유는 무엇입니까?
구체적인 문제는 다음 커밋에 설명되어 있습니다 :
1) https://github.com/ceilican/Scorex/commit/133157a6ad070cad7a57624c511ee917133ed5f1
2) https://github.com/ceilican/Scorex/commit/074e0bc5add3c666b0943497a5579f3fd365084d
3) https://github.com/ceilican/Scorex/commit/7c8d3475377a17b2a5383bf3a99d797650ca8bc3
처음 두 커밋 노력하고 있습니다. 세 번째 클래스에서는 위에서 언급 한 예외가 발생합니다.
커밋 2와 3에는 개념적 차이가별로 없습니다. 왜 커밋 2가 작동하는지 이해할 수 없지만 커밋 3은 그렇지 않습니다.
내가 때문에 경우 클래스의 인수의 많은이 될 수 있다고 생각 잠시하지만, 나는 작은 경우 클래스에 새로운 필드를 추가하는 경우에도 문제가 발생하는 것을 알 수 커밋 다음
4) I 후 4
이 무화과 나무속의 버그를 커밋 코드를 실행하려고하면 https://github.com/ceilican/Scorex/commit/1c253b2b526db1539fa674069232cf02784c4bfb
예외의 같은 종류의
가 발생?