Ist int.class gleich Integer.class oder Integer.TYPE in Java?

Stellen wir uns vor, man ruft mit der Erklärung Typ eines Field mit der spiegelung.

Welche der folgenden tests richtig deuten, ob es sich um eine int oder eine Integer?

Field f = ...
Class<?> c = f.getDeclaringClass();
boolean isInteger;

isInteger = c.equals(Integer.class);
isInteger = c.equals(Integer.TYPE);
isInteger = c.equals(int.class);

isInteger = ( c == Integer.class);
isInteger = ( c == Integer.TYPE);
isInteger = ( c == int.class);
Kommentar zu dem Problem
warum nicht testen Sie es selbst? Warum nicht das Lesen der javadoc? Kommentarautor: JB Nizet
warum Fragen Sie dies nicht nur läuft es sich? Dies ist sehr gut dokumentiert. Kommentarautor: Taylor
Sie schrieb bereits den code, warum Sie nicht einfach wickeln Sie es in ein Haupt-und kompilieren und führen Sie es? Kommentarautor: John Gardner
Das Problem mit dem testen mich nur, dass es ein Risiko fehlt eine Ecke Fall. Das ist, warum ich bin mit der Frage. Kommentarautor: JVerstry
JVersty korrekt ist. Implementierung und Spezifikation sind verschiedene Dinge. Er will wissen, über die Spezifikation, die mehr auf hart, dann laufen Sie einfach ein Stück code... +1 Kommentarautor: gavenkoa

InformationsquelleAutor der Frage JVerstry | 2011-08-16

Schreibe einen Kommentar