Java 8 – 三元运算符返回函数不编译

前端之家收集整理的这篇文章主要介绍了Java 8 – 三元运算符返回函数不编译前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有谁能告诉我为什么不编译?
public class TestClass {

    private boolean doThis = false;

    protected void fooThat() {}

    protected void fooThis() {}

    public void execute() {
        (doThis ? this::fooThis : this::fooThat).run();
    }
}

解决方法

你想要的是什么
(doThis ? this::fooThis : (Runnable) (this::fooThat)).run();

Java不能从方法名称推断你期望的类型?:返回.

我不知道这比谁好

if (doThis)
    fooThis();
else
    fooThat();

猜你在找的Java相关文章