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

Scala – 将整数列表映射到接收java.lang.Object的方法

发布时间:2020-12-16 08:48:03 所属栏目:安全 来源:网络整理
导读:在 Scala-IDE中工作,我有一个 Java库,其中一个方法接收java.lang.Object.我想将一个Int值列表映射到它.唯一有效的解决方案是: val listOfInts = groupOfObjects.map(_.getNeededInt)for(int - listOfInts) libraryObject.libraryMethod(int) 而以下一个: g
在 Scala-IDE中工作,我有一个 Java库,其中一个方法接收java.lang.Object.我想将一个Int值列表映射到它.唯一有效的解决方案是:

val listOfInts = groupOfObjects.map(_.getNeededInt)

for(int <- listOfInts) libraryObject.libraryMethod(int)

而以下一个:

groupOfObjects.map(_.getNeededInt).map(libraryMethod(_)

乃至

val listOfInts = groupOfObjects.map(_.getNeededInt)

val result = listOfInts.map(libraryObject.libraryMethod(_))

type mismatch; found : Int required: java.lang.Object Note: an
implicit exists from scala.Int => java.lang.Integer,but methods
inherited from Object are rendered ambiguous. This is to avoid a
blanket implicit which would convert any scala.Int to any AnyRef. You
may wish to use a type ascription: x: java.lang.Integer.

和类似的东西

val result = listOfInts.map(libraryObject.libraryMethod(x => x.toInt))

要么

val result = listOfInts.map(libraryObject.libraryMethod(_.toInt))

也不起作用.

1)为什么会这样?据我所知,for和map例程差别不大!

2)另外:什么意思你可能希望使用类型ascription:x:java.lang.Integer?我该怎么办?我尝试明确指定类型,如x:Int => x.toInt,但这太错误了.那么什么是“类型归属”?

更新:

T.Grottker提出的解决方案补充说.我得到的错误是这样的:

  • missing parameter type for expanded function ((x$3) => x$3.asInstanceOf[java.lang.Object])
  • missing parameter type for expanded function ((x$3) => x$3.asInstanceOf{#null#}[java.lang.Object]{#null#}) {#null#}

而且我想,OMG,它只会增长!谁能解释所有这些< null>这意味着什么?我只是想知道真相. (注意:我不得不用#替换<> brakets,因为SO引擎切断了整个事情,所以用你的想象来取代它们).

解决方法

类型不匹配会告诉您确切的问题:您可以转换为java.lang.Integer但不能转换为java.lang.Object.所以告诉它你想在整个过程中要求一个整数.例如:

groupOfObjects.map(_.getNeededInt: java.lang.Integer).map(libraryObject.libraryMethod(_))

(符号值:类型 – 在val或var或参数方法的声明之外使用时 – 意味着在可能的情况下将值视为该类型;值必须是Type的子类,或者需要一个隐式转换,可以将值转换为适当类型的值.)

(编辑:李大同)

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

    推荐文章
      热点阅读