Init.java
package basic;
import java.util.function.*;
public class Init {
Init(){
p("constructor");
}
int i = ((IntSupplier)(() -> { p("field1"); return 0; })).getAsInt();
{
p("initializer1");
}
int j = ((IntSupplier)(() -> { p("field2"); return 0; })).getAsInt();
{
p("initializer2");
}
static void p(String s){
System.out.println(s);
}
public static void main(String... args){
new Init();
}
}
結果はこのとおり、定義順です。
field1
initializer1
field2
initializer2
constructor