Unterschied mit und ohne Wildcard, IntelliJ

List<?> ist einfach die Abkürzung für List<? extends Object>. Wie schon gesagt, es ist ein fester Typ, den wir nur nicht kennen. Deshalb darf man auch nicht einfach irgendwelchen Krams in die Liste packen, weil man eben nicht weiß, ob der Typ passt. Holt man Objekte aus der Liste, ergibt sich aus der Bound, dass sie vom Typ Object sein müssen, auch nicht sehr hilfreich.

Ein Raw-Typ ist als prähistorischer (prägenerischer?) Typ “eigentlich” so etwas wie List<Object>, allerdings kann es krachen, wenn ein Typ generisch erzeugt wurde, und dann als Raw-Typ verwendet wird. Beispiel: Set set = EnumSet.allOf(MyEnum.class); set.add("Bumm!");

Übrigens Gratulation zu deiner Entscheidung, IntelliJ zu benutzen!