以下の JavaScript の例を、ラムダを使用して Java 8 の対応するコードに変換する方法。Java 8ラムダを取得しようとしています。
構成例。
// js
var isFlag = true,
name = (function () {
if (isFlag) return "A";
else return "B";
})();
console.log(name);
//outputs: A
Java 8で書いてみましたが、構文か何かが間違っています。以下のコードを参照してください。
// 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
ありがとう。