我是Java 8的新手,需要帮助来分析使用lambda的BiFunction实现是否可以简化为一行代码。
我正在从REST API接收字符串形式的JSON响应,我想使用Gson存储在Hashmap中,然后我的函数应该返回给定键的值。
Map<String,String> map = new HashMap<>();
BiFunction<String,String,String> getValueFromResponseWithKey = (s1,s2)-> {
Map<String,String> str =gson.fromJson(response,map.getClass());
return str.get(s2);};
System.out.println(getValueFromResponseWithKey.apply(response,"accountNumber"));
如果能找到getValueFromResponseWithKey
函数的单行实现,那就太好了。
答案 0 :(得分:2)
应该如下所示。您可能需要添加简单的转换,例如
BiFunction<String,String,String> getValueFromResponseWithKey =
(s1,s2) -> ((Map<String, String>) gson.fromJson(response,map.getClass())).get(s2);