当前位置: 首页 > 面试题库 >

java.lang.Boolean到scala.Boolean问题

简滨海
2023-03-14
问题内容
georgii@gleontiev:~$ scala
Welcome to Scala version 2.8.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_24).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val jbool = java.lang.Boolean.TRUE    
jbool: java.lang.Boolean = true

scala> val sbool = true         
sbool: Boolean = true

scala> def sboolMethod(sbool: Boolean) = print("got scala.Boolean " + sbool)              
sboolMethod: (sbool: Boolean)Unit

scala> sboolMethod(sbool)
got scala.Boolean true

scala> sboolMethod(jbool)
<console>:9: error: type mismatch;
 found   : java.lang.Boolean
 required: scala.Boolean
       sboolMethod(jbool)
                   ^

scala> implicit def jbool2sbool(bool: java.lang.Boolean): scala.Boolean = bool.booleanValue
jbool2sbool: (bool: java.lang.Boolean)Boolean

scala> sboolMethod(jbool)                                                                  
got scala.Boolean true

问题是:为什么没有默认的隐式转换从java.lang.Booleanscala.Boolean?这个问题也代表java.lang.Longvs
scala.Long和其他标准类型(尚未尝试所有标准类型)。


问题答案:

在2.9中,进行了这种转换,以帮助与Java进行互操作。(Scala不需要单独使用它,因为它可以透明地对原语进行装箱和拆箱,这也许就是为什么它不包括在内的原因。)



 类似资料:
  • 问题内容: 我目前正在开发一个Scala应用程序,该应用程序利用Spring-Boot和Swagger发送和接收REST调用。 Swagger和Spring-Boot是纯Java项目,与Scala的兼容性有限,但是我似乎找到了解决该问题的方法。 由于Spring- Boot和Swagger将请求作为Java对象处理(需要使用setter和getter才能工作),因此我必须将请求视为Java对象,然

  • 我有一个布尔字段,我想验证它只有“true”或“false”作为值(没有引号)。但是这个字段也允许“true”或“false”作为值(带引号),我想对其进行限制。 我尝试使用@Pattern注释来匹配这些值。但我有以下错误: javax.validation.expectiontedTypeException:HV000030:找不到约束“javax.validation.Constraints.

  • 我在代码中调用一个rest终结点,该终结点返回一个简单的字符串true或false。我已经将我的Spring靴升级到2.4。下面的代码现在抛出一个异常。 org.springframework.web.client.未知内容类型异常:无法提取响应:在org.springframework.web.client.HttpMessageConverterExtractor.extract数据(Http

  • 我得到的错误. 我对此感到困惑,因为它来自下面显示的被注释掉的服务方法。当我把它注释掉时,错误就避免了。列是一个,即或。 实体: 我的存储库: 我的服务: 当我取消注释时

  • 问题内容: 这是代码段: 之后遇到错误: 所有其他方法都可以正常工作。试图进行大量研究但徒劳无功。任何线索将不胜感激 问题答案: 这表明Spark版本不匹配。在Spark 2.3 方法之前,仅接受两个参数: 从2.3开始,它需要三个参数: 在您的情况下,Python客户端似乎调用了后者,而JVM后端使用了较旧的版本。 由于初始化在2.4中进行了重大更改,这将导致上的失败,因此您可能使用: 2.3.

  • 下面是put请求的控制器映射: 当我运行以下来自邮递员的请求时: 我得到以下异常 我可能很简单,但我不明白我错过了什么?