加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala布尔值到字符串转换

发布时间:2020-12-16 10:04:55 所属栏目:安全 来源:网络整理
导读:转换为true的一种方法:将布尔值转换为String scala true.toStringres: String = true 然而, scala true.asInstanceOf[String]java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String 为什么后者尝试失败? 非常感谢 解决方法
转换为true的一种方法:将布尔值转换为String

scala> true.toString
res: String = true

然而,

scala> true.asInstanceOf[String]
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String

为什么后者尝试失败?

非常感谢

解决方法

这是因为Boolean不是String的子类型或与String兼容的类型

scala> val a: Any = "Hello"
a: Any = Hello

scala> val b = a.asInstanceOf[String]
b: String = Hello

scala> val c: Char = 123
c: Char = {

scala> val d = c.asInstanceOf[Int]
d: Int = 123

scala> (123).asInstanceOf[Double]
res0: Double = 123.0

scala> (1.3).asInstanceOf[Int]
res1: Int = 1

如您所见,我可以轻松地来回转换任何类型的兼容类型,在这种情况下,数字(包括字符)是交叉兼容的.所有类型都与Any兼容,因为Any只保存任意对象引用,所以只要你使用正确的类型“unbox”,你就是金色的.

scala> val arr = Array("Hello",245,true)
arr: Array[Any] = Array(Hello,true)

scala> val first = arr(0).asInstanceOf[String]
first: String = Hello

scala> val second = arr(1).asInstanceOf[Int]
second: Int = 245

scala> val third = arr(2).asInstanceOf[Boolean]
third: Boolean = true

这样可以正常工作,只要您对拆箱方式小心,就不会出现任何错误.这是在将泛型引入语言之前用Java编写的.也就是说,如果你将任何一个数组元素强制转换为错误的类型,你将获得强制转换异常.

.toString方法与类型转换不同,因为它根本不是转换,它存在作为将任何对象转换为其自身的字符串表示的简洁方式.

scala> val a = List(1,2,3,4)
a: List[Int] = List(1,4)

scala> a.toString
res0: String = List(1,4)

这样做是为了在必要时可以打印任何类型,并且与铸造无关.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读