小编Dim*_*nis的帖子

Java编译错误:结合重载的方法引用

我有以下类与重载方法:

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) …

java overloading compiler-errors java-8 method-reference

11
推荐指数
1
解决办法
238
查看次数

由于性能原因,更好的像素计算方法

我有一个方法,它接受一个javafx.scene.paint.color参数并返回blackwhite作为一个color取决于brightness给定的color.

这是我的代码:

@Override
public Color getPixelColor(Color color) {
    return color.getBrightness() > cutOff ? Color.WHITE : Color.BLACK;
}
Run Code Online (Sandbox Code Playgroud)

因为这对每个要做pixelimage该方法可以利用根据的一会儿image size.(对于全高清图像,代码将运行200万条if语句)

所以我的问题是,如果有一种方法/计算,它会给你0(黑色)或1(白色)作为结果但不使用任何if陈述.

提前致谢.

java javafx

-2
推荐指数
1
解决办法
53
查看次数