I have a multikey map. Though it's a long map, but for understanding I am just showing 3 elements with 4 fields each. key1 and key2 are keys for this multikey map.
Map:
{MultiKey[M3, M33]=Row(field1=2021-02-28, field2=3,key1=M3,key2=M33), MultiKey[M1, M11]=Row(field1=2021-02-28, field2=3,key1=M1,key2=M11), MultiKey[M2, M22]=Row(field1=2021-02-28, field2=2, key1=M2,key2=M22))}
My POJO class looks like:
@Data
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class Row implements Serializable {
public String field1;
public String field2;
public String key1;
public String key2;
public String toString() {
return new ToStringBuilder(this).
append("field1", field1).
append("field2", field2).
append("key1", key1).
append("key2", key2).
toString();
}
}
I want to convert values of this map to objects. I am trying to do it in below way.
ObjectMapper mapper = new ObjectMapper(); // jackson's objectmapper
Row[] pojo1 = mapper.convertValue(map.values(), Row[].class);
I went through https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ToStringBuilder.html as suggested in the comments.
System.out.println("MATCH KEY1: +ToStringBuilder.reflectionToString(pojo1[0].key1));
MATCH KEY1: java.lang.String@372ea2bc[value={M,3},hash=2438]
But I expect it to print just M3.