Wie benutze ich withDefault Wrapper?

8

Ich möchte MutableMap mit den Standardeinstellungen : %Vor%

, aber ich kann getOrImplicitDefault method nicht verwenden, weil withDefault MutableMap<String, Set<String>> type zurückgibt. Außerdem kann ich nicht auf MutableMapWithDefault interface anwenden, weil Dies ist eine private Schnittstelle .

Ich kann die get -Methode auch nicht verwenden, weil sie einen nullbaren Typ zurückgibt. Es ist in Ordnung, weil dies eine Methode für die Schnittstelle MutableMap ist (außerdem ruft sie defaultValue callback nicht auf, um den Standardwert zu übernehmen).

Scheint, dass diese Funktionalität in Kotlin nicht korrekt implementiert ist, oder ich verwende sie falsch. Also, wie verwende ich withDefault Wrapper richtig?

    
Maxim Dobryakov 25.04.2016, 09:33
quelle

3 Antworten

5

Gegenwärtig ist ein von withDefault zurückgegebener Wrapper nur in Anwendungsfällen der Eigenschaftsdelegierung verwendbar.

%Vor%     
Ilya 25.04.2016, 14:41
quelle
4

Sieht in Kotlin 1.1 so aus, dass es funktioniert, wenn Sie getValue () verwenden. Funktion anstelle der Funktion get() .

    
sschuberth 04.04.2017 14:54
quelle
1

Nun, alle Implementierungen von getOrImplicitDefault leiten t an getOrElseNullable um. Vielleicht versuch das.

    
Jacob Zimmerman 25.04.2016 13:04
quelle

Tags und Links