Nie jestem pewien, czy w pełni rozumiem różnicę między SomeGeneric<*>
i SomeGeneric<Any>
. Myślę, że *
reprezentuje wszystko (symbol wieloznaczny) i Any
reprezentuje obiekt, z którego dziedziczą WSZYSTKIE obiekty. Wygląda więc na to, że powinny być takie same, ale czy tak jest?
W kontekście, o którym myślę, że sugerujesz,
SomeGeneric<*>
jest równoważneSomeGeneric<out Any?>
. Odpowiednik Java toSomeGeneric<? extends Object>
.Składnia o nazwie „projekcje gwiazd”. Oto oficjalne dokumenty: https://kotlinlang.org/docs/reference/generics.html#star-projections
źródło