Datentypen Casts typesafe machen? ("unchecked")

Bernd Hohmann

Top Contributor
Ich hab hier eine Methode "public Object getReturncode()" deren Rückgabetyp ich nicht ändern darf.

Im caller muss ich dann also einen cast machen der Sorte "alFiles = (ArrayList) dinges.getReturnCode()"

Gibt es ausser @SuppressWarnings oder Rückgabetyp ändern noch eine Möglichkeit den Compiler glücklich zu machen?

Bernd
 
M

Marco01_809

Gast
Java:
Object o = dinges.getReturnCode();
if (!(o instanceof ArrayList)) {
    // Problem behandeln, aber dafür sorgen,
    // dass in keinem Fall der nachfolgende Code erreicht werden kann,
    // in dem du dann wirklich auf ArrayList castest
}
alFiles = (ArrayList) o;

Edit:
btw, nicht ArrayList als Typ angeben => List!
Damit kannst du dann nämlich nach belieben eine andere Implementierung von List verwenden, ohne überall Code ändern zu müssen.
 
Zuletzt bearbeitet von einem Moderator:

Bernd Hohmann

Top Contributor
Sorry, ungenaue Fragestellung von mir (peinlich)...

alFiles = (ArrayList<ITPCData>) dinges.getReturnCode()

Warnung:
Code:
Type safety: Unchecked cast from Object to ArrayList<ITPCData>

Die Frage war also eigentlich, wie man diese Warnung idealerweise ohne @SuppressWarnings wegbekommt und wenn mit @SuppressWarnings dann so, dass nicht die gesamte Methode und auch nur diese Warnung betroffen ist.

Bernd
 
M

Marco01_809

Gast
Bernd Hohmann hat gesagt.:
Die Frage war also eigentlich, wie man diese Warnung idealerweise ohne @SuppressWarnings wegbekommt
Indem man das Problem behebt!
Und das kann man, in dem man nicht einfach blind castet, sondern vorher sicherstellt, dass das Objekt auch wirklich eine ArrayList<ITPCData> ist, wie ich oben gezeigt habe ;)
 
M

Marco01_809

Gast
Ohman, entschuldigung! Da hatte ich das Brett vor'm Kopf.
Die Generics sorgen hier nämlich für Probleme, da die Informationen über die Typen zur Laufzeit nicht mehr verfügbar sind (werden nicht mit einkompiliert), somit kann man niemals sichergehen.

So weit ich weiß, hilft da wirklich nur noch @SuppressWarnings und hoffen, dass die ArrayList ITPCData-Objekte enthält.

Ist aber auch ein sehr unglücklicher Fall - im guten Programmierstil sollte keine Methode vorkommen, die Objects zum selbst-umcasten returned.
 

Bernd Hohmann

Top Contributor
Ok, danke.

Ich würds ja gerne ändern, aber die Abstrakte Mutterklasse gibt hier ein Object vor (das war noch vor Generics).

Schade dass @SuppressWarnings nicht für eine Zeile Code verwenden kann.

Bernd
 

Marco13

Top Contributor
Ja, ist mir neulich auch aufgefallen, man müßte sich mal die Spec ansehen, aber GROB: Das kann man anscheinend nur bei Deklarationen verwenden (Variablen- oder Klassendeklarationen)
 

Bernd Hohmann

Top Contributor
Ich halte es da mit einer ganz alten Zeichnung von Sepp Arnemann wo die Hausausfrau sich bei Ihrem Mann mit den Worten "Raketen können sie auf den Mond schiessen, aber einen haltbaren Besen bringen sie nicht auf die Beine" beschwert

Java wird mit viel Kram aufgebläht, Hilfe zur Selbsthilfe ist immer weniger dabei.

Bernd
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Datentypen Casts bei Listelementtypen Java Basics - Anfänger-Themen 4
B clone() und casts umschreiben Java Basics - Anfänger-Themen 4
G Vector, equal & Casts Java Basics - Anfänger-Themen 5
H Generics machen mich verrückt Java Basics - Anfänger-Themen 8
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
K mit <<1 kann man mal 2 machen, mit >>2 geteilt durch zwei und was bewirkt <<<1 und >>>1? Java Basics - Anfänger-Themen 5
U Char zu einem String machen Java Basics - Anfänger-Themen 1
N Java-Code abwärtskompatibel machen Java Basics - Anfänger-Themen 4
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
C Was machen mit nicht mehr verwendeten Instanzen ? Java Basics - Anfänger-Themen 18
TimoN11 Java - Eine oder mehrere Eingaben möglich machen Java Basics - Anfänger-Themen 6
N Wie kann ich eine meine Variable Final machen? Java Basics - Anfänger-Themen 1
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
H Array Slot frei machen Java Basics - Anfänger-Themen 3
H Array Slot frei machen Java Basics - Anfänger-Themen 4
A Algorithmus effizienter machen Java Basics - Anfänger-Themen 1
iman Eingabe von Benutzer Filter machen. Java Basics - Anfänger-Themen 7
F JTextField Kursiv und Fett machen Java Basics - Anfänger-Themen 4
F Aufgabenstellung genauer formulieren/verständlicher machen? Java Basics - Anfänger-Themen 10
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
I JFrame proportional verkleinerbar machen Java Basics - Anfänger-Themen 3
F Aus geraden eine Kurve machen Java Basics - Anfänger-Themen 6
G Boolschen Ausdruck true machen Java Basics - Anfänger-Themen 2
M Java Methode editierbar machen im Programm Java Basics - Anfänger-Themen 62
T Wie weiter machen? Java Basics - Anfänger-Themen 9
G Erste Schritte Fehler ausfindig machen Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
DaCrazyJavaExpert JScollPane scrollbar unsichtbar machen Java Basics - Anfänger-Themen 2
P Aus einem Array zwei Arrays machen Java Basics - Anfänger-Themen 3
G Objekt Instanziierung von Eingabe abhängig machen Java Basics - Anfänger-Themen 5
B Unique ID nochmal Unique machen Java Basics - Anfänger-Themen 20
S JLabel sichtbar machen/GUI Java Basics - Anfänger-Themen 3
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
W Wie kann man zufällige Anordnungen machen? Java Basics - Anfänger-Themen 1
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
D Objekt Transparenter machen Java Basics - Anfänger-Themen 1
S OOP Frage: Methoden nur bei bestimmten Gegebenheiten aufrufbar machen? Java Basics - Anfänger-Themen 4
A Wie kann ich mein Programm noch effizienter machen? Java Basics - Anfänger-Themen 1
S BufferedImage heller/dunkler machen mit RescaleOp Java Basics - Anfänger-Themen 2
I OOP Wie kann ich diesen Code 'Objektorientiert machen' ? Java Basics - Anfänger-Themen 1
C Mit Java Musik machen? Java Basics - Anfänger-Themen 86
TheSorm String zu Methode machen Java Basics - Anfänger-Themen 1
S Funktionen/Atrribute nur innerhalb einer package Zugänglich machen Java Basics - Anfänger-Themen 8
O Zwei Methoden zueinander Thread-safe machen (Locken) Java Basics - Anfänger-Themen 9
Y Eingabe-Formular mit JSP dynamisch machen - j/n/wie? Java Basics - Anfänger-Themen 2
M Ausführen rückgängig machen Java Basics - Anfänger-Themen 2
K RGB Wert Heller machen (Dunkler machen klappt) Java Basics - Anfänger-Themen 2
R Kann jemand diese Java Programmierung machen? Versteh ich leider nicht Java Basics - Anfänger-Themen 17
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
T Text auf der Konsole farbig machen Java Basics - Anfänger-Themen 6
O Eigenen Addon-Loader machen? Java Basics - Anfänger-Themen 33
L Auf herunterfahren des PCs reagieren und Datensatz update machen Java Basics - Anfänger-Themen 15
J jar Dateien global erreichbar machen Java Basics - Anfänger-Themen 3
I Objekte verfügbar machen Java Basics - Anfänger-Themen 5
D Panel sichtbar/unsichtbar machen im ActionListener Java Basics - Anfänger-Themen 3
R Anzahl der ineinander verschachtelten for-Schleifen von Variable abhängig machen Java Basics - Anfänger-Themen 5
K Vererbung Methoden in klassen auslagern und in mehreren Klassen verfügbar machen Java Basics - Anfänger-Themen 8
A Objekt global verfügbar machen Java Basics - Anfänger-Themen 4
B Threads Geschwindigkeit der Befehle auf verschiedenen PCs gleich machen Java Basics - Anfänger-Themen 3
H Ausgabe nebenläufig machen Java Basics - Anfänger-Themen 6
S Erste Schritte import für andere Klassenfiles verfügbar machen? (Java unter Eclipse) Java Basics - Anfänger-Themen 8
GianaSisters Methoden eigenes TableModel -> removeRow möglich machen Java Basics - Anfänger-Themen 30
G Eingabe beliebig lang machen Java Basics - Anfänger-Themen 8
S Kapselung Member korrekt nach aussen verfügbar machen Java Basics - Anfänger-Themen 6
C Threads Methode unterbrechbar machen Java Basics - Anfänger-Themen 12
S Bytecode sichtbar machen Java Basics - Anfänger-Themen 2
L Aus ArrayInformationen Objekt machen? Java Basics - Anfänger-Themen 6
E Klasse abstract machen Java Basics - Anfänger-Themen 3
K Klasse für andere Klassen sichtbar machen Java Basics - Anfänger-Themen 6
P Aus einer Klasse ein Interface machen? Java Basics - Anfänger-Themen 5
B String zu int machen Java Basics - Anfänger-Themen 23
M Programm lauffähig machen ohne Run Configurations Java Basics - Anfänger-Themen 5
M aus vielen backsalshs einen machen Java Basics - Anfänger-Themen 6
M Backslash aus mehreren einen machen? Java Basics - Anfänger-Themen 7
B Variablen Variablen in try / catch "public" machen? Java Basics - Anfänger-Themen 3
F Was soll dieses Programm genau machen ? Java Basics - Anfänger-Themen 9
O Will ein Jar-Archive machen mit FAT JAR - geht nicht ! Java Basics - Anfänger-Themen 2
J Wie java programm noch schneller machen? Java Basics - Anfänger-Themen 30
R Problem: Threads Synchronized machen Java Basics - Anfänger-Themen 5
TheKing Bild nur in Kreis sichtbar machen Java Basics - Anfänger-Themen 6
V JFrame erst sichtbar machen wenns geladen ist Java Basics - Anfänger-Themen 8
J Oracle XE bekannt machen Java Basics - Anfänger-Themen 8
K Farbe heller machen Java Basics - Anfänger-Themen 4
C OOP Klassen in der "Hauptklasse" bekannt machen Java Basics - Anfänger-Themen 4
Q Iteration wie machen Java Basics - Anfänger-Themen 5
T Applet zentrieren / Rand machen Java Basics - Anfänger-Themen 5
M Fenster unsichtbar machen Java Basics - Anfänger-Themen 9
J binaerbaum aus listen machen Java Basics - Anfänger-Themen 8
A snapshot machen Java Basics - Anfänger-Themen 4
C Wie Objekte am besten anklickbar machen ? Java Basics - Anfänger-Themen 9
J arraylist ausserhalb der main Methode zugänglich machen (Elemente adden und updaten) Java Basics - Anfänger-Themen 4
H Parameterobjekt in App anwendungsweit verfügbar machen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben