在Java中,你可以使用构造函数,即创建Some
一个实例,但None
没有伙伴班。你如何通过None
到Java的Scala函数?
33
A
回答
19
我觉得这丑陋位将工作:scala.None$.MODULE$
没有必要为一个新实例,因为一个都不是另一个好...
10
您可以从Java中使用访问单身无实例:
scala.None$.MODULE$
49
的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);
所以这是一个不同的方式来获得无那在更多情况下可用。
1
与此stinkfest面前,我一贯的手法是:
斯卡拉:
object SomeScalaObject {
def it = this
}
的Java:
doStuff(SomeScalaObject.it());
2
我发现这个这个通用功能是最强大的。您需要提供类型参数,但演员只出现一次,这很好。由于Java编译器可能会通知您,所以其他一些解决方案无法在各种情况下使用。
import scala.None$;
import scala.Option;
public class ScalaLang {
public static <T> Option<T> none() {
return (Option<T>) None$.MODULE$;
}
}
public class ExampleUsage {
static {
//for example, with java.lang.Long
ScalaLang.<Long>none();
}
}
相关问题
- 1. 如何使用Java代码
- 2. 如何使用Java代码
- 3. 如何从Java代码
- 4. 如何使用Java代码运行Java代码?
- 5. 如何从我的Java代码使用Apache Felix?如何添加maven POM代码?
- 6. 如何从Java代码调用servlet
- 7. 如何从Java调用Xtend代码?
- 8. 如何从Wicket中的JavaScript代码调用Java代码?
- 9. OpenMP如何在Java代码中使用?
- 10. 如何使用wsdl2java创建Java代码?
- 11. 如何检查™使用Java代码
- 12. 我如何使用Java代码
- 13. 如何使用XML或Java代码
- 14. 我如何使用liquibase与Java代码
- 15. 如何在java代码中使用parenetheses
- 16. 如何使用Java代码登录Facebook?
- 17. 如何从Java代码中使用Jacob禁用VB6 MsgBox
- 18. 如何使用QAndroidJniObject从Qt内部调用Java代码?
- 19. 从本机代码调用Java代码?
- 20. 使用Java代码
- 21. 使用Java代码
- 22. 从Java代码
- 23. 从Java代码
- 24. 从Java代码
- 25. 想要使用JavaCPP从Java代码中调用C++代码?
- 26. 使用MonoDroid库apk从Java代码
- 27. 如何使用Java从html代码中获取图像URL
- 28. 如何使用环境变量从Java代码设置文件?
- 29. 如何从Java代码中使用Scala可变参数
- 30. 如何使用mybatis直接从java代码执行查询?
我甚至不得不编写“scala.Option.apply((String)null)”来使编译器很高兴。 – Eric 2012-05-17 00:59:26
谢谢!这对我有用,而scala.None $ .MODULE $产生类型错误。 – 2016-01-25 18:24:55