15 18 JLS Java SE 8 , 15.12.2:
, - (§15.27.1) (§15.13.1), , , .
Java , test(() -> "test"), () (.. ) , . <T> void test(T), <T> void test(Supplier<T>) w.r.t. test(() -> "test"). , , . , (
JLS 15.12.2.5 JLS 18.5.4) , 15.12.2.5:
, , , , , , .
<T> void test(Supplier<T>) T <T> void test(T), , .
, <T> void test(Class<T>, Supplier<T>), <T> void test(Class<T>, T) test(String.class, () -> "test"), , . , , . ., , JLS 18.5.1:
, C, .
...
k ≠ n (1 ≤ ≤ n) , e_i (§15.12.2.2) (...) , C (1 ≤ ≤ k), e_i , .
k ≠ n, , .
C (1 ≤ ≤ k), e_i , .
JLS 15.12.2.2:
m, :
...
, lambdas, , .
, , , - - , . , <T> void test(Class<T>, Supplier<T>), <T> void test(Class<T>, T), .
, test(String.class, (Supplier<String>) () -> "test"); , @Aominè . (Supplier<String>) () -> "test") - , , , , .