Skip to content

Mapping List<String> to a List of non-String data type #85

@psawmora

Description

@psawmora

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) ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions