Ответ 1
Какая большая польза от возможности комментировать лямбда-неявный параметр?
Использование аннотаций в выражении lambda должно быть аналогично любому другому атрибуту в инструкции, отличной от lambda. Это может быть полезно:
- отразить и вывести некоторую информацию об аннотированном объекте во время выполнения.
- также во время компиляции, чтобы изобразить поведение, такое как сгенерированный исходный код или другие подсказки для инструментов
Вариант использования, указанный в самом JEP-323 (подтверждая, что я не уверен, что то, что вы ожидаете)
(@Nonnull var x, @Nullable var y) -> x.process(y)
где аннотации могут использоваться библиотеками для определения проверки значения по x
и y
. В этом случае вы знаете, что x.process(y)
безусловно, не может x.process(y)
NullPointerException, даже не помещая явную проверку нуля для x
которая аналогична любому другому явно аннотированному параметру, отличному от lambda.
Примечательно, что это одно из преимуществ придания однородности разрешения var
для формальных параметров неявно типизированного лямбда-выражения.