2016-07-11 11 views
1

Ich habe ein Problem festgestellt, wo mein Code kompiliert und läuft gut in NetBeans, aber wenn ich versuche, mit der Befehlszeile mit javac zu kompilieren, bekomme ich eine ungeprüfte Warnung Fehler und es schlägt fehl. Wenn ich mit -Xlint kompiliere: nicht aktiviert, erhalte ich eine detaillierte Beschreibung des Fehlers, der auf das Problem hinweist.Diamond Operator, Generics und Compile Probleme

Hier scheitere ich richtig Generika verwenden und wo mein Problem ist: List<String> name = new ArrayList();

Nach dem Hinzufügen des Diamant Operator nun der Code fein kompiliert in die und aus der IDE
List<String> name = new ArrayList<>();

Es scheint, dass Im ersten Beispiel muss ich Casting verwenden, während der zweite Generics verwendet.

Meine Frage ist: Ist das ein Fehler in der IDE? NetBeans scheint alle möglichen anderen Fehler zu erfassen, aber warum sollte mein Code in der IDE kompiliert werden, aber nicht mit der Befehlszeile? Es sollte offensichtlich sein, dass ich neu in der Programmierung bin, also bitte verzeih mir, wenn ich keine Frage von Bedeutung gestellt habe.

Informationen, die nahe, meine Frage zu beantworten kommt: The Java™ Tutorials, What is the point of the diamond operator in Java 7?(stackOverflow)

Ich habe nachgeschlagen und fand Bug 250587, aber nicht gleich. Ich bin auch auf dem neuesten Stand ohne Updates auf NetBeans. Meine javac-Version ist 1.8.0_91

Danke, dass Sie sich die Zeit genommen haben, dies zu lesen.

+0

Ich empfehle etwas wie: Liste name = new Arraylist (); –

+1

@ChristianAmmann nicht so, wurde der Diamant-Operator verwendet, um repetitive Typisierung zu reduzieren. –

+0

@JoopEggen Oh ok, wusste das nicht, danke für den Rat :) –

Antwort

1

kein Bug,

List<String> name = new ArrayList(); //this instantiates a raw type of `ArrayList` 

Und

List<String> name = new ArrayList<String>(); // this instantiates an `ArrayList` with parametric type `String` 

Und

List<String> name = new ArrayList<>(); // this is a short-hand since Java 7 for the above