Yıldız projeksiyonunu yalnızca herhangi bir türü değil, tam olarak ne olduğunu bilmediğiniz sabit bir türü temsil etmenin bir yolu olarak düşünmek yardımcı olabilir .
Örneğin, tür MutableList<*>
, bir şeyin listesini temsil eder (tam olarak ne olduğunu bilmiyorsunuz). Yani bu listeye bir şey eklemeye çalışırsanız, başaramazsınız. Bir e listesi String
veya bir e listesi Int
veya başka bir şeyin listesi olabilir. Derleyici, listenin bu tür nesneleri kabul ettiğini doğrulayamayacağı için bu listeye herhangi bir nesne koymaya izin vermez. Bununla birlikte, bu listeden bir öğe çıkarmaya çalışırsanız, kesinlikle bir nesne türü elde edersiniz Any?
, çünkü Kotlin'deki tüm nesneler öğeden miras alır Any
.
Gönderen asco aşağıda yorum:
Ek olarak List<*>
, herhangi bir türden, ancak yalnızca bu türden nesneler içerebilir, bu nedenle Dizeler (ancak yalnızca Dizeler) List<Any>
içerebilirken, Dizeler ve Tamsayılar ve hepsi aynı listede olabilir.