2012-12-12 5 views
1

Dozer가 Number 유형의 Source Class 변수를 같은 유형의 Destination Class 변수에 매핑 할 수없는 이유는 무엇입니까? 소스 및 대상 클래스 모두 소스에서 대상 클래스에 매핑이 같은 예외를 던지는 동안 Transactions.Both는 번호 필드가 있지만 말할 같은 클래스 유형을 참조하십시오 여기에Dozer : Number to Number 매핑이 지원되지 않습니다.

java.lang.IllegalArgumentException: argument type mismatch 

Some more Info: 
Dest parent class: XXX 
Source field name: totalAccounts 
Source field type: class java.lang.Integer 
Source field value: 8 
Dest parent class: XXX 
Dest field name: totalAccounts 
Dest field type: java.lang.Number 

:

다음과 같은 예외를 얻기.

동일한 데이터 형식의 "인수 불일치"가 왜 발생하는지 이해하지 못합니까?

답변

1

Dozer 메시지에 따르면, 동일한 유형이 아닙니다. 원본 필드는 Integer이고 대상은 Number입니다.

The Dozer documentation에는 (적어도 올바르게 읽은 경우) 이러한 빌드 인 변환기가 언급되어 있지 않으므로 org.dozer.CustomConverter의 자체 구현을 구현해야 할 수도 있습니다. 당신이 같은 클래스와 같은 필드라고했기 때문에 하나는 왜 Integer이고 다른 하나는 Number (적어도 클래스와 매핑 파일에 대한 정보가 없어도)입니다. 더 나은 클래스와 매핑 파일을 모두 확인하고 해결 방법으로 CustomConverter을 시도하십시오.