我有以下类与重载方法:
import java.util.ArrayList;
import java.util.concurrent.Callable;
public abstract class Test {
public void test1 () {
doStuff (ArrayList::new); // compilation error
}
public void test2 () {
doStuff ( () -> new ArrayList<> ());
}
public abstract void doStuff (Runnable runable);
public abstract void doStuff (Callable<ArrayList<String>> callable);
}
Run Code Online (Sandbox Code Playgroud)
该方法test1导致错误消息的编译错误
The method doStuff(Runnable) is ambiguous for the type Test.
我添加了第三种方法test3,如下所示:
public void test3 () {
doStuff ( () -> {
new ArrayList<> ();
});
}
Run Code Online (Sandbox Code Playgroud)
这里doStuff(Runnable) …
我有一个方法,它接受一个javafx.scene.paint.color参数并返回black或white作为一个color取决于brightness给定的color.
这是我的代码:
@Override
public Color getPixelColor(Color color) {
return color.getBrightness() > cutOff ? Color.WHITE : Color.BLACK;
}
Run Code Online (Sandbox Code Playgroud)
因为这对每个要做pixel的image该方法可以利用根据的一会儿image size.(对于全高清图像,代码将运行200万条if语句)
所以我的问题是,如果有一种方法/计算,它会给你0(黑色)或1(白色)作为结果但不使用任何if陈述.
提前致谢.