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

java – 如何在Scala中实例化Unit?

发布时间:2020-12-14 06:01:43 所属栏目:Java 来源:网络整理
导读:我想要的只是使用一些并发Set(看起来根本不存在). Java使用java.util.concurrent.ConcurrentHashMap K,Void实现这种行为.我想在Scala中做类似的事情,所以我创建了Scala HashMap(或Java ConcurrentHashMap)的实例,并尝试添加一些元组: val myMap = new HashM
我想要的只是使用一些并发Set(看起来根本不存在). Java使用java.util.concurrent.ConcurrentHashMap< K,Void>实现这种行为.我想在Scala中做类似的事情,所以我创建了Scala HashMap(或Java ConcurrentHashMap)的实例,并尝试添加一些元组:
val myMap = new HashMap[String,Unit]()
myMap + (("myStringKey",Unit))

这当然会破坏编译过程,因为Unit是抽象的和最终的.

如何使这项工作?我应该使用Any / AnyRef吗?我必须确保没有人插入任何价值.

感谢帮助

解决方法

您可以使用其类型为Unit的():
scala> import scala.collection.mutable.HashMap
import scala.collection.mutable.HashMap

scala> val myMap = new HashMap[String,Unit]()
myMap: scala.collection.mutable.HashMap[String,Unit] = Map()

scala> myMap + ("myStringKey" -> ())
res1: scala.collection.mutable.Map[String,Unit] = Map(myStringKey -> ())

这是来自Unit.scala的评论:

There is only one value of type Unit,(),and it is not represented by any object in the underlying runtime system.

(编辑:李大同)

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

    推荐文章
      热点阅读