将一个Function0 <boolean>从Java传递给Scala </boolean>

时间:2014-09-25 08:46:26

标签: scala

我有一个带有以下功能的scala文件:

def whitelist(shouldSample: => Boolean = true)

现在,在Java代码中,我想传递一个Function0作为参数:

Function0<Boolean> filterFunction = new AbstractFunction0<Boolean>() {
  @Override
  public Boolean apply() {
    return true;
  }
};

ThriftEndpointSampler.whitelist(filterFunction);

Intellij抱怨filterFunction没有使用Java boolean原语进行参数化,这是我无法做到的,因为它是一个原语。编译器也会抱怨,请求filterFunction使用java.lang.Object进行参数化。使用Object代替布尔值为编译器工作,但Intellij仍然抱怨。 scala.Boolean无法正常工作,因为我认为Java boolean会自动转换为scala Boolean基元。

使用Object对我来说似乎很奇怪。这样做有更好的做法吗?

0 个答案:

没有答案