我将JsonObject转换为String,然后将它们解析回来.
public static JsonObject clone(JsonObject o) {
if (o == null)
return null;
StringWriter buffer = new StringWriter();
JsonWriter writer = Json.createWriter(buffer);
writer.write(o);
writer.close();
return Json.createReader(new StringReader(buffer.toString())).readObject();
}
Run Code Online (Sandbox Code Playgroud)
我寻找更优雅的方法.
我可以这样做:
Map<String, String> mapA = ...;
Map<String, String> mapB = mapA.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue
));
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这样做时:
... mapA.entrySet().stream()
.collect(JsonCollectors.toJsonObject(
JsonObject.Entry::getKey,
JsonObject.Entry::getValue
));
Run Code Online (Sandbox Code Playgroud)
我明白了
不能从静态上下文中引用非静态方法
对于JsonObject.Entry::getKey, JsonObject.Entry::getValue
部分。
为什么?