Tôi muốn sử dụng MutableMap
with defaults:Cách sử dụng với trình bao bọc mặc định?
val myMap = mutableMapOf<String, Set<String>>().withDefault { mutableSetOf() }
nhưng tôi không thể sử dụng phương pháp getOrImplicitDefault
vì withDefault
lợi nhuận MutableMap<String, Set<String>>
loại. Hơn nữa, tôi không thể truyền tới giao diện MutableMapWithDefault
vì this is a private interface.
Tôi không thể sử dụng phương pháp get
vì phương thức này trả về loại có thể không có giá trị. Nó là ok vì đây là một phương pháp trên giao diện MutableMap
(hơn nữa nó không gọi defaultValue
gọi lại để nhận giá trị mặc định).
Dường như chức năng này không được triển khai chính xác trong Kotlin hoặc tôi đang sử dụng sai. Vì vậy, làm cách nào để sử dụng trình bao bọc withDefault
chính xác?
['SetMultimap'] của ổi (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/SetMultimap.html) hoặc [' LoadingCache'] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/LoadingCache.html) trông giống như phù hợp hơn với những gì bạn đang cố gắng hoàn thành. – mfulton26