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) 这样做是为了在必要时可以打印任何类型,并且与铸造无关. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |