当前位置:   article > 正文

java.lang.Integer cannot be cast to java.lang.String; scala 中和java 间的类型转换_java.lang.integer cannot be cast to java.lang.char

java.lang.integer cannot be cast to java.lang.charsequence

如下代码会报错:java.lang.Integer cannot be cast to java.lang.String

val j:java.lang.Integer=1
j.toString//报错java.lang.Integer cannot be cast to java.lang.String
 j.asInstanceOf[String]//报错java.lang.Integer cannot be cast to java.lang.String
  • 1
  • 2
  • 3

解决办法,引入 scala.collection.JavaConverters._

两种方式来完成集合类型在 Scala 与 Java 间的转换

scala.collection.JavaConversions._ 自动转型,Scala 2.8 加入的。隐式转型可能会造成阅读上的障碍,可能会让人难以知晓什么变成了什么
scala.collection.JavaConverters._ 然后再调用 asJava/asScala 方法半自动转型(自动部分在生成 AsJava/AsScala 中间实例)。Scala 2.8.1 加入,稍新, asJava/asScala 为我们标记出了实际转型的地方,以及从哪个方向到哪个方向


//java转换为scala,调用to*方法进行转换
import scala.collection.JavaConverters._

val j:java.lang.Integer=1
 j.toString//ok
 j.asInstanceOf[String]//报错java.lang.Integer cannot be cast to java.lang.String,因为scala的string就是java.lang.String
 
//scala数据类型转化为java数据类型
import scala.collection.JavaConverters._

val l = List(1L,2L,3L,4L)

l.map(java.lang.Long.valueOf).asJava
// or 
l.map(_.asInstanceOf[AnyRef]).asJava
// or
l.map(Long.box).asJava

// List集合转换
val jl : java.util.List[Int] = new scala.collection.mutable.ListBuffer[Int].asJava

//scala转scala
//1.String 转Int
val i : Int = Integer.parseInt("1")
//2.Int | boolean转String
val str: String = String.valueOf(1)
val str1 = String.valueOf(true)

//3.强制转换 用法:对象名.asInstanceOf[类型]
val b : A = new B
//强制转换
val c : B = b.asInstanceOf[B]
//父类  
class A
//子类
class B extends A
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

参考:
https://docs.scala-lang.org/overviews/collections/conversions-between-java-and-scala-collections.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/1011901
推荐阅读
相关标签
  

闽ICP备14008679号