-1
У меня есть выражение лямбда, как показано ниже. Я хочу спросить, есть ли какой-либо простой способ или лучшая практика для параметра метода литья?Как использовать параметры лямбда-метода?
results.forEach(
(result) ->
{
((JSONObject)result).put("test", "test");
((JSONObject)result).put("time", System.currentTimeMillis());
otherList.add(((JSONObject)result));
}
);
Когда я пытаюсь изменить тип входа, как
(JSONObject result) ->
я получаю ниже ошибки;
incompatible types: Consumer<JSONObject> cannot be converted to Consumer<? super Object>
Как говорится в сообщении, те, типы несовместимы. Почему бы просто не ввести локальную переменную? –
@OliverCharlesworth Сначала я подумал, что (создавая новую локальную переменную), но что, если у меня есть 5-6 входов? Нужно ли мне создавать новую переменную для всех? – hellzone
Эта проблема не уникальна для лямбда - она применима к любому методу. (Тем не менее, если у вас есть лямбда с 5-6 входами, возможно, происходит что-то странное!) –