HashMapでキーを変換したいと思います。マップにはlower_underscoreキーがありますが、マップにはcamelCaseキーが必要です。マップにはヌル値も含まれます。マップのキーをマップする最も良い方法
これを行うにはstraightfowardコードはここにある:)私はグアバのMaps.transformValues()またはMaps.transformEntries(のようにこれを行うための方法を知りたい
Map<String, Object> a = new HashMap<String, Object>() {{
put("foo_bar", 100);
put("fuga_foga", null); // A value may be null. Collectors.toMap can't handle this value.
}};
Map<String, Object> b = new HashMap<>();
a.forEach((k,v) -> b.put(toCamel(k), v));
が、これらの方法は、単に値を変換します。
Collectors.toMap()もクローズですが、このメソッドはnull値が存在する場合にNullPointerExceptionをスローします。
Map<String, Object> collect = a.entrySet().stream().collect(
Collectors.toMap(x -> toCamel(x.getKey()), Map.Entry::getValue));
「Collectors:toMap' NPEに関するディスカッション:http://stackoverflow.com/questions/24630963/java-8-nullpointerexception-in-collectors-tomap – Dhananjay