我在Scala对象中定义了以下列表:
object Foo {
val bar = List(1, 2, 3)
}
这似乎成为了一个scala.collection.immutable.List< Object>当我尝试从Java使用它时.因此,我必须使用像Foo.bar()这样的getter.应用$mcII $sp(i)或者使用强制类型转换为Integer / int.
为什么泛型类型是Object而不是Integer?对于以Java原语存在的类型,似乎也只是这种情况;列表[MyType]变为List< MyType>在斯卡拉.
解决方法:
我遇到了一个类似的问题,Swagger对Scala反应不佳.
我不知道为什么,但是这个bug /特性与Java的原语有关,它们没有setter和getter(就像对象一样).由于Java编译器无法找到适合的对象,因此只需将其编译为Object.
Scala集合已经使转换器解决了这个问题:https://docs.scala-lang.org/overviews/collections/conversions-between-java-and-scala-collections.html
我能想到的唯一解决方法是使用:Foo.bar.toJava
资料来源:
Deserializing Scala list with Jackson
https://stackoverflow.com/a/52581955/2291510
Spring RequestParam formatter for Scala.Option
祝好运!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。