Я прочитал http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-4.html и заметил, что во всех примерах тип аргумента объявлен явно, хотя он уже известен из объявления функции интерфейса.
public interface FileFilter {
/** ... **/
boolean accept(File pathname);
}
FileFilter java = (File f) -> f.getName().endsWith(".java");
Не можем ли мы обойтись просто
(f) -> f.getName().endsWith(".java"); ?
UPDATE: JSR-335 Draft, я обнаружил, что параметры типа inferred скорее всего будут поддерживаться
(int x) -> x+1 // Single declared-type parameter
(int x) -> { return x+1; } // Single declared-type parameter
(x) -> x+1 // Single inferred-type parameter
x -> x+1 // Parens optional for single inferred-type case