Annotating Listwith @JvmSuppressWildcardsseems to help:
var outer: Map<String, @JvmSuppressWildcards List<Entry>>? = null
If we do not use @JvmSuppressWildcards, then the Kotlin code translates to:
Map<String, ? extends List<TestJsonKotlin.Entry>> outer;
If we use it, the code translates to:
Map<String, List<TestJsonKotlin.Entry>> outer;
? extends - , Java. Gson .
javap :
public final class TestJsonKotlin {
private final java.util.Map<java.lang.String, java.util.List<TestJsonKotlin$Entry>> outer;
public final java.util.Map<java.lang.String, java.util.List<TestJsonKotlin$Entry>> getOuter();
}
public final class TestJsonKotlin {
private java.util.Map<java.lang.String, ? extends java.util.List<TestJsonKotlin$Entry>> outer;
public final java.util.Map<java.lang.String, java.util.List<TestJsonKotlin$Entry>> getOuter();
}
var ? extends java.util.List<TestJsonKotlin$Entry>.