我是scala的新手,并与scala和Java一起工作。
我试图将scala Int传递给接受Integer(java.long.Integer)的方法。由于它们的类型不同,因此编译器会给出错误信息。
/* name- Option[String], id- Option[Integer] , mask- Option[String]*/
new findingFrame(name,id, mask)
case class findingFrame(name: String,
id: Option[java.lang.Integer],
mask : Option[String])
我尝试使用.instanceOf [java.lang.Integer],但这也不起作用。
我不确定如何解决此问题。有人可以帮我吗?
谢谢你。
最佳答案
我认为大多数其他答案都可以解决这个问题,您的问题是使用Option,而不是scala和Java整数之间的区别。您可以使用选项做很多事情,例如:
鉴于:
val optionOfInteger = Option(5)
val i = optionOfInteger.get
)val i = optionOfInteger.getOrElse(0)
)val optionOfString = optionOfInteger.map(_.toString)
)val str = optionOfInteger.fold("Nothing")(_.toString)
)在您的情况下,此方法的一个好用法可能是决定调用还是不调用java方法。
def myFn(findingFrame: FindingFrame) = { findingFrame.in.foreach{i => javaMethod(i) } }
在上面,您可以使用map或match/case。
关于java - 如何将scala Int转换为java Integer?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40605810/