java - Java 中的 Scala Option.orElse

标签 java scala

和我的想法一样previous question , 只是更高级一点。我想用 Java 编写以下 Scala 代码:

Option(System.getProperty("not.present")).orElse(Some("default")).get

我试过这个:

    final Function0<Option<String>> elseOption = new Function0<Option<String>>() { 
        @Override public Option<String> apply() { 
            return new Some<String>("default"); 
        }
    };

    final Option<String> notPresent =
        new Some<String>(System.getProperty("not.present")).
        orElse(elseOption).get();

但是我得到:

<anonymous OptionDemo$1> is not abstract and does not override abstract method apply$mcD$sp() in scala.Function0
[error]       orElse(new Function0<Option<String>>() {

最佳答案

扩展 AbstractFunction0 而不是 Function0。那应该给你特征提供的方法。

关于java - Java 中的 Scala Option.orElse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9060041/

相关文章:

java - Guava + 合并多个文件并跳过重复的标题

scala - sbt : Is there a better way of structuring large build. sbt 文件

Scala CQRS 框架

scala - Spark on AWS EMR : java. lang.NoSuchMethodError : scala. Product.$init$(Lscala/Product;)V

scala - 为什么 Scala 有时需要在匿名函数中命名的参数?

java - 无法弄清楚如何访问由 swagger 自动生成的 jaxrs 服务器中的请求 header

java - 修复 Google API task-android-sample 的内存不足错误

java - hibernate如何使用equals()和hashCode()?

java - BlueMix 中的新 Relic 应用程序名称

java - 是否可以在一个类中同时实现 scala.collection.Seq[T] 和 java.util.List[T]