Comment convertir l'exemple JavaScript ci-dessous en code correspondant dans Java 8 avec lambda. J'essaie d'obtenir le Java 8 lambda.
Exemple inventé. J'ai essayé d'écrire en Java 8, mais la syntaxe ou quelque chose ne va pas. Voir le code ci-dessous.Comment écrire une invocation de fonction immédiate en Java? Exemple JavaScript fourni
// LambdaTest.java
class LambdaTest {
public LambdaTest() {
boolean isFlag = true;
String name =() -> { //I know this is wrong. It is not an IIFE. But how to write one?
if (isFlag) return "A";
else return "B";
};
System.out.println(name);
}
public static void main(String... args) {
LambdaTest lt = new LambdaTest();
}
}
// outputs:
// LambdaTest.java:4: error: incompatible types: String is not a functional interface
// String name =() -> {
// ^
// 1 error
Merci.
La réponse de Stuart Marks est la meilleure traduction littérale de ce JavaScript en Java 8, mais je Je ne comprends pas pourquoi tu voudrais faire ça. La raison pour laquelle les gens utilisent habituellement les IIFE en JavaScript est que la langue n'a pas la bonne portée lexicale, ce que Java a. –
"Je ne comprends pas pourquoi tu voudrais faire ça": Rien de particulier, je voulais juste savoir si c'est possible. – boring