Got compile error when mapping data from int to Integer in List.
How to reproduce issue:
public class Issue322TestCase {
@Test
public void compile_error_when_customized_list_element_mapping_int_to_integer() {
PersonList personList = new PersonList();
Person person = new Person();
person.age = 20;
personList.persons.add(person);
MapperFactory mapperFactory = MappingUtil.getMapperFactory();
mapperFactory.classMap(PersonList.class, PersonAgeListDto.class)
.field("persons{age}", "personAges{}")
.byDefault()
.register();
PersonAgeListDto dest = mapperFactory.getMapperFacade().map(personList, PersonAgeListDto.class);
assertEquals(1, dest.personAges.size());
assertEquals(Integer.valueOf(20), dest.personAges.get(0));
}
public static class Person {
public int age;
}
public static class PersonList {
public List<Person> persons = new ArrayList<>();
}
public static class PersonAgeListDto {
public List<Integer> personAges;
}
}
Exception during mapping:
Caused by: compile error: no such field: java
at javassist.compiler.MemberResolver.lookupField(MemberResolver.java:321)
at javassist.compiler.MemberResolver.lookupFieldByJvmName(MemberResolver.java:307)
at javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:904)
at javassist.compiler.TypeChecker.atFieldRead(TypeChecker.java:831)
at javassist.compiler.TypeChecker.atExpr(TypeChecker.java:605)
at javassist.compiler.ast.Expr.accept(Expr.java:71)
at javassist.compiler.TypeChecker.fieldAccess(TypeChecker.java:888)
at javassist.compiler.TypeChecker.atFieldRead(TypeChecker.java:831)
at javassist.compiler.TypeChecker.atExpr(TypeChecker.java:605)
at javassist.compiler.ast.Expr.accept(Expr.java:71)
at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:693)
Got compile error when mapping data from int to Integer in List.
How to reproduce issue:
Exception during mapping:
Generated mapping code:
Incorrect line:
Maybe the solution is: