LoginSignup
6
5

More than 5 years have passed since last update.

Java 8 のラムダ式で JavaScript の即時関数っぽいこと

Last updated at Posted at 2015-06-04

なんか思いついた。

import java.util.function.Supplier;

public class Main {

    private final String str = ((Supplier<String>) () -> {
        System.out.println("str を初期化します!");
        return "ほげほげ";
    }).get();

    public static void main(String... args) {
        Main main = new Main();
        System.out.println(main.str);
    }
}
実行結果
str を初期化します!
ほげほげ

JavaScript と違って、スコープ定義のメリットは存在しない。

インスタンスイニシャライザやコンストラクタを利用することなく、 final なフィールドを個別に初期化できるくらいがメリット?(果たしてメリットと言えるかは微妙)

だいぶトリッキーな気がする。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5