Сокращение лямбда-выражения до одной строки - PullRequest
1 голос
/ 11 мая 2019

Я новичок в Java 8 и мне нужна помощь, чтобы проанализировать, можно ли сократить реализацию BiFunction с использованием лямбды до одной строки кода.

Я получаю ответ JSON от REST API в форме String, который я хочу сохранить в Hashmap, используя Gson, и тогда моя функция должна вернуть значение, данное Key.

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.

1 Ответ

2 голосов
/ 11 мая 2019

Это должно быть как ниже.Вы можете добавить простое приведение, как это-

BiFunction<String,String,String> getValueFromResponseWithKey = 
        (s1,s2) -> ((Map<String, String>) gson.fromJson(response,map.getClass())).get(s2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...