Я пытаюсь использовать сборщик Guava's toImmutableSortedMap
из Kotlin 1.3.50 (на Java 13 на macOS 10.14.6 + обновления). Я получаю ошибки обобщения, когда я пытаюсь использовать toImmutableSortedMap
, но я не получаю никаких ошибок, если вместо этого использую toImmutableMap
:
val map = mutableMapOf<String, MutableMap<Path, String>>()
// populate map
// toImmutableSortedMap has compile-time generics errors
map.entries.stream()
.collect(
toImmutableSortedMap<Map.Entry<String, MutableMap<Path, String>>, String, ImmutableSortedMap<Path, String>>(
naturalOrder<String>(),
{it.key}, // errors e1 & e2 here
{ImmutableSortedMap.copyOf(it.value)} // errors e3 & e4 here
)
)
// toImmutableMap works fine
map.entries.stream()
.collect(
toImmutableMap<Map.Entry<String, MutableMap<Path, String>>, String, ImmutableSortedMap<Path, String>>(
{it.key},
{ImmutableSortedMap.copyOf(it.value)}
)
)
Ошибки обобщения для toImmutableSortedMap
:
e1: Type mismatch: inferred type is () -> [ERROR : <ERROR PROPERTY TYPE>] but Function<in Map.Entry<String, MutableMap<Path, String>>!, out String!>! was expected
e2: Unresolved reference: it
e3: Type mismatch: inferred type is () -> ??? but Function<in Map.Entry<String, MutableMap<Path, String>>!, out ImmutableSortedMap<Path, String>!>! was expected
e4: Unresolved reference: it
Есть идеи как это исправить?