Я новичок в лямбда-выражениях. У меня есть следующий код:
List<String> someNumbers = Arrays.asList("N40", "N36", "B12", "B6", "G53", "G49", "G60", "G50", "G53", "I26", "I17", "I29", "O71");
someNumbers
.stream()
.filter(startsWith("G"))
В приведенном выше коде «фильтр» должен действовать как предикат и возвращать логическое значение. Но почему он показывает ошибку компиляции? Я не получаю сообщение об ошибке при использовании строки ниже:
.filter(s->s.startsWith("G"))
Выше поток передается в фильтр. так зачем нужен аргумент s? например, '.map' обрабатывает его без ошибок, если используется как
.map(String::toUppercase).