首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >必需的Java/Scala : Iterable[_ <:Float],找到: Iterable[Float]

必需的Java/Scala : Iterable[_ <:Float],找到: Iterable[Float]
EN

Stack Overflow用户
提问于 2021-12-08 03:04:05
回答 1查看 199关注 0票数 1

我有一个用Java定义的protobuf方法

代码语言:javascript
复制
public Builder addAllTensor(
          Iterable<? extends Float> values)

我用val a: ArrayList[Float]调用Scala中的方法,它在代码检查期间是正常的,但是在构建过程中出错。

代码语言:javascript
复制
type mismatch;
 found   : java.util.ArrayList[scala.Float]
 required: Iterable[_ <: java.lang.Float]

但是用a.toIterable调用它会导致代码检查中的错误(在IntelliJ IDEA中)

代码语言:javascript
复制
Required: Iterable[_ <: Float], found: Iterable[Float] 

(这怎么可能是类型错配……)只是好奇为什么..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-08 06:49:45

问题在于scala.Float与Java的Float

自动转换不会在集合中发生,您必须以某种方式创建Java的Float集合。

(编辑)更多的上下文(感谢@Suma):Scala的Float对应于float,而Java容器只能包含Float,而不能包含float,因为在Java原语中需要装箱才能参与泛型。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70269416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档