-
Notifications
You must be signed in to change notification settings - Fork 41
Description
I was trying to do a recursive mapping on List of Strings to a List of Some other type. For an example take the following class definitions. Classes have getters and setters set through longbok.
`
public static class EmployeeDB {
private String bankName;
List<Detail> details;
}
public class Detail {
private String name;
private String address;
}
public static class Source {
private String bankName;
List<String> names;
}
`
The Jmapper API was as follows.
`
JMapperAPI jMapperAPI = new JMapperAPI()
.add(mappedClass(EmployeeDB.class)
.add(global()
.excludedAttributes("details"))
.add(attribute("details").value("names"))
)
.add(mappedClass(Detail.class)
);
Source source = new Source();
source.setBankName("Bank-1");
source.setNames(List.of("e-1", "e-2"));
JMapper<EmployeeDB, Source> mapper = new JMapper<>(EmployeeDB.class, Source.class, jMapperAPI);
EmployeeDB employeeDB = mapper.getDestination(source);
System.out.println(employeeDB.getDetails().get(0).getName());
`
Here I've tried setting a recursive mapping for Detail class but haven't set any attributes as I couldn't find a proper target attribute in the String class.
When ran, I got the following exception.
Exception in thread "main" java.lang.ClassCastException: java.base/java.lang.String cannot be cast to com.ilt.cms.pm.integration.mapper.Detail
Is there any special way to map a List to List (based on the example here) ?