Ci sono ragioni per cui la specifica del tipo di argomento è richiesto nella sintassi di Java 8 Lambda?

StackOverflow https://stackoverflow.com/questions/8907505

  •  29-10-2019
  •  | 
  •  

Domanda

ho letto http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-4.html e hanno notato che tutti gli esempi hanno un tipo di argomento dichiarato esplicitamente, anche se è già noto dalla dichiarazione di funzionamento dell'interfaccia.

public interface FileFilter {
    /** ... **/
    boolean accept(File pathname);
}


FileFilter java = (File f) -> f.getName().endsWith(".java");

Non possiamo andare solo con

(f) -> f.getName().endsWith(".java"); ?

AGGIORNARE: Nel Draft JSR-335, Ho scoperto che è più probabile che i parametri di tipo dedotto siano supportati

(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 

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top