Java – how to assign method reference values to runnable

I discussed the problem of Java 8 runnable

public static void main(String[] args) {
    Runnable r1 = Test::t1;
    Runnable r2 = Test::t2;
    Runnable r3 = Test::t3;
}

public static void t1() {

}

public static String t2() {
    return "abc";
}

public static String t3(String t) {
    return t;
}

As the code shows, I understand that R1 is correct and R3 is wrong, but I don't understand why R2 is also right Can someone help me understand

Solution

Since section 15.13 2 of the JLS, R2 is a fine, including:

Basically, writing T2 () is valid; And just ignore the return value, so it is valid to create a method reference that calls the method and ignores the return value

T3 is invalid because you have to provide a parameter and runnable has no parameters, so nothing can be "passed" to the method

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>