Unterschied zwischen `*` und `Any` in Kotlin Generics: Sternchen vs Any
Hallo zusammen! Ich habe vor kurzem angefangen, Kotlin zu lernen und bin auf einen unklaren Punkt bei Generics gestoßen. \n\nIn der Dokumentation habe ich gesehen, dass man `*` (star projection) in Generics verwenden kann, aber auch `` schreiben kann. Auf den ersten Blick scheinen sie dasselbe zu tun – sie erlauben es, beliebige Typen in einer Collection zu speichern. Aber ich habe das Gefühl, dass es einen wichtigen Unterschied zwischen ihnen gibt.\n\nZum Beispiel schreibe ich folgenden Code:\n\n```kotlin\nval list1: MutableList = mutableListOf("String", 42, 3.14)\nval list2: MutableList<*> = mutableListOf("String", 42, 3.14)\n```\n\nBeide Variablen funktionieren, und ich kann beliebige Elemente hinzufügen. Aber wenn ich versuche, ein Element zu lesen und es einer Variable mit einem bestimmten Typ zuzuweisen, treten Merkwürdigkeiten auf.\n\nWenn ich schreibe:\n```kotlin\nval item1: String = list1[0] // Compiler-Fehler?