如何与默认包装一起使用?

格言

我想使用MutableMap 默认值

val myMap = mutableMapOf<String, Set<String>>().withDefault { mutableSetOf() }

但是我不能使用getOrImplicitDefault方法,因为withDefault返回MutableMap<String, Set<String>>类型。而且,我无法转换为MutableMapWithDefault接口,因为这是一个私有接口

我也不能使用get方法,因为它返回了可为空的类型。可以,因为这是MutableMap接口上的方法(此外,它不会调用defaultValue回调以获取默认值)。

似乎此功能未在Kotlin中正确实现,或者我使用的是错误的。那么,如何withDefault正确使用包装器?

伊利亚

从Kotlin 1.0开始,返回的包装器withDefault仅在属性委派用例中可用。

val map = mutableMapOf<String, Set<String>>().withDefault { mutableSetOf() }

var property: Set<String> by map // returns empty set by default

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

包装器的normalizeFeatures如何与验证集一起使用?

如何包装以下CTE,以便可以将其输出与INSERT INTO语句一起使用?

如何编写用于double的包装,以与boost序列化一起使用?

如何将包装材料与聚合物元件一起使用?

在逻辑函数中包装mutate以与lapply一起使用

使Turbolinks包装器与Ruby on Rails Devise一起使用

WrapPanel与ItemControl一起使用时不包装

默认赋值运算符如何与字符串指针一起使用

与xfce一起安装后,如何使用默认的ubuntu unity 14.04登录屏幕?

如何将RedirectToPage与需要参数的默认处理程序一起使用?

如何获取Scala命名和默认参数以与宏一起使用

如何将set方法与具有默认值的Input vatiables一起使用?

浏览器的默认拖放-如何与选定的文本一起使用?

如何使用 DOM API 有条件地将元素包装在一起?

Python将* args与默认参数一起使用

将ACL与多个默认组一起使用

Angular默认货币管道无法与金额一起使用

与需要清理的对象一起包装

如何与Generator一起使用Promise?

如何使kotlintest与Spring一起使用?

如何与种类一起使用NodePort?

如何与gradle一起使用JMH?

如何使CreateUsingInMemory()与MassTransit一起使用?

如何使@WebMvcTest与OAuth一起使用?

如何使Javassist与Tomcat一起使用

FTP如何与QNetworkAccessManager一起使用?

如何使Powermock与Dexmaker一起使用

@JsonView如何与@RequestBody一起使用

如何使TLS与Java一起使用?