如何使用 scala。来自 Java 代码的无

2022-09-01 02:53:45

可能的重复:
访问 scala。来自 Java 的无

在Java中,您可以创建使用构造函数的实例,即,但没有伙伴类。如何从Java传递到Scala函数?Somenew Some(value)NoneNone


答案 1

这个东西并不总是类型检查,例如,它不会编译:scala.None$.MODULE$

scala.Option<String> x = scala.None$.MODULE$;

因为javac不知道Scala的声明站点方差,所以你得到:

J.java:3: incompatible types
found   : scala.None$
required: scala.Option<java.lang.String>
    scala.Option<String> x = scala.None$.MODULE$ ;

不过,这确实编译:

scala.Option<String> x = scala.Option.apply(null);

因此,这是获得可在更多情况下使用的“无”的不同方法。


答案 2

我认为这个丑陋的部分会起作用:scala.None$.MODULE$

不需要一个新实例,因为一个 None 和另一个一样好...


推荐