MapStruct를 사용하여 두 객체를 매핑하려고합니다. 나는 잠시 동안 검색을 해왔으며 아무것도 찾을 수 없었습니다. 프로그래밍에 익숙하지 않아서 제작하는 것보다 쉽습니다. 여기 MapStruct arrayList에서 가져 오는 중
약간 뒤로 벗겨 코드는 (그것이 여기로 실제 코드 ArrayList를 수신처로 동일한 유형 없다는로부터 자식 오브젝트로 더욱 복잡 유의 아이 변수 개체)SourceObject을
public class SourceObject {
public ArrayList<ListObject> list = new ArrayList<ListObject>();
public SourceObject() {
list.add(new ListObject());
}
}
ListObject
public class ListObject {
public DetailsObject details = new DetailsObject();
public ListObject() {
details.forename="SourceForename";
details.surname="SourceSurname";
}
}
DestinationObject
public class DestinationObject {
public DetailsObject details = new DetailsObject();
public DestinationObject() {
details.forename="DestinationForename";
details.surname="DestinationSurname";
}
}
DetailsObject
public class DetailsObject {
public String forename;
public String surname;
}
이것은 내가 직접 SourceObject 내부 DetailsObject를 넣으면 잘 작동하지만, 내가하려고 할 때 문제가된다 할 것이다
@Mappings({
@Mapping(target="details.forename", source="list.get(0).details.forename"),
@Mapping(target="details.surname", source="list.get(0).details.surname"),
})
DestinationObject toDestination(SourceObject source);
매퍼 그것을 t에서 가져 가라. 그는 목록에 올라있다. 내가 얻은 오류는 다음과 같습니다.
[오류] 목표 org.apache.maven.plugins : maven-compiler-plugin 실행 실패 : 3.5.1 : 프로젝트 템플릿에서 컴파일 (기본 컴파일) : 컴파일 실패 : 컴파일 실패 :
[ERROR] .../src/main/java/Mapper/SourceToDestinationMap.java : [12,13] source 매개 변수에는 "list.get (0) .details.surname"이라는 속성이 없습니다). "list.empty"?
[ERROR] .../src/main/java/Mapper/SourceToDestinationMap.java : [11,9] 소스 매개 변수에 "list.get (0) .details.forename" . "list.empty"?
편집 : 매퍼의 현재 상태 :
@Mapper
public interface SourceToDestinationMap {
@Mapping(target = "details", source = "list")
DestinationObject toDestination(SourceObject source);
default DetailsObject map(List<ListObject> source) {
return map(source.get(0));
}
DetailsObject map(ListObject source);
}
완전한 매퍼 코드와받은 컴파일 오류를 제공하십시오. – saw303
매핑 코드가 잘못되었거나 더 구체적으로 클래스 코드가 매핑하려는 코드와 일치하지 않습니다. – Filip
미안하지만, 나는 누군가가 쉽게 arraylist에서 일반적인 작업을 기대하고 얻을 방법의 방향으로 나를 가리키길 바랄거야. 내 프로젝트에서 모든 세부 사항을 취하기보다는, 내가하려고하는 것을 보여주는 간단한 프로젝트를 만들었으며 이것을 반영하기 위해 첫 번째 게시물을 업데이트했습니다. 잘하면 그게 도움이 :) –