TreeMap Rückgabe - Compiler-Warnings

huckleberry

Bekanntes Mitglied
Hallo Forum,

ich bekomme nach dem Compilieren Warnings, welche ich gerne beheben will.
Da ich in Java nicht sehr Erfahren bin, es gerne aber lernen würde, bin ich bemüht, es zu verstehen.
Compiler-Warnings an der entsprechenden Stelle als Fussnoten /*<nummer>*/ ganz unten..
Java:
/...blabla
TreeMap<Double, SpecialObj> myTreeMap = new TreeMap<Double, SpecialObj>();
myTreeMap = calculateSometing(time, para2,  para3); /*1*/

public TreeMap calculateSometing(long time, SpecialObj myObj, int parameter3) {
		//....blabla
		myTreeMap.put(anyDouble, anySpecialObj); /*2*/
		Iterator<SpecialObj> it = blabla.values().iterator();
		while(it.hasNext()){
				SpecialObj v = it.next();
				v.getAny(d);
				if(Bedingung){
					// put vehicles into TreeMap
					myTreeMap.put(d, v); /*2*/
				}
		}
                //...blabla
                return myTreeMap;


/* --> 1
Type safety: The expression of type TreeMap needs 
 unchecked conversion to conform to 
 TreeMap<Double,SpecialObj>
*/

/* --> 2
Type safety: The method put(Object, Object) belongs to 
 the raw type TreeMap. References to generic type 
 TreeMap<K,V> should be parameterized
*/
//blabla...

Vielen Dank für eure Hilfen und
mfg Huck
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ein Objekt zu Erzeugen und direkt mit dem Objekt zu "überschreiben", das von der Methode geliefert wird, macht keinen Sinn - auch wenn es in diesem Fall dasSELBE Objekt ist...
Code:
...
TreeMap<Double, SpecialObj> myTreeMap = calculateSometing(time, para2,  para3); /*1*/

...

public TreeMap<Double, SpecialObj> calculateSometing(long time, SpecialObj myObj, int parameter3) {
    TreeMap<Double, SpecialObj> myTreeMap[b]WhichIsOnlyUsedInThisMethod[/b] = new TreeMap<Double, SpecialObj>();
    myTreeMap[b]WhichIsOnlyUsedInThisMethod[/b].put(anyDouble, anySpecialObj); /*2*/
        //....blabla
...
 
S

SlaterB

Gast
myTreeMap in Zeile 7 scheint nicht myTreeMap in Zeile 2 zu sein, oder?
solche doppelten Variablennamen ohne Erklärung sind verwirrend,

Zeile 2 und 3 zeigen übrigens einen häufigen Anfängerfehler,
wenn man einen Parkplatz für ein Auto baut, dann betoniert man doch nicht 8m^2,
stellt einen nigelnagelneuen VW drauf, und verschrottet ihn 1 sec später,
um dann den richtigen Wagen abzustellen..

lasse die Variable anfangs leer:
Type variable = null;
variable = ladeWert();

oder gleich
Type variable = ladeWert();

-----

in der Methode calculateSometing erzeugst du offensichtlich eine Map mit Double -> SpecialObj,
dann definiere die Variable treeMap dort auch als TreeMap<Double, SpecialObj>, nicht einfach als TreeMap

und schreibe
public TreeMap<Double, SpecialObj> calculateSometing
statt
public TreeMap calculateSometing




@Marco13
> auch wenn es in diesem Fall dasSELBE Objekt ist...

wie kann es dann aber zu den Warnings kommen?
 

huckleberry

Bekanntes Mitglied
Ach entschuldigung, hab was vergessen:
Java:
TreeMap<Double, SpecialObj> myTreeMap = new TreeMap<Double, SpecialObj>();
myTreeMap = calculateSometing(time, para2, myTreeMap); /*1*/

public TreeMap calculateSometing(long time, SpecialObj myObj, TreeMap myLocalTreeMap) {
/..
return myLocalTreeMap;
}
Ein Objekt zu Erzeugen und direkt mit dem Objekt zu "überschreiben", das von der Methode geliefert wird, macht keinen Sinn
Hmm, Ich brauche diese TreeMap welche doch erst berechnet werden muss.. Wenn es eine elegantere Lösung gibt, immer her damit ;)
 

huckleberry

Bekanntes Mitglied
Achso, jetzt verstehe ich das mit dem VW und Parkplatz.. Wenn ich die TreeMap in calculateSomething definiere ist sie doch nur da sichbar? Ich wollte sie da wo sie steht sichtbar haben.. ?!?! Oder hab ich ein Denkfehler?

in der Methode calculateSometing erzeugst du offensichtlich eine Map mit Double -> SpecialObj,
dann definiere die Variable TreeMap dort auch als TreeMap<Double, SpecialObj>, nicht einfach als TreeMap

und schreibe
public TreeMap<Double, SpecialObj> calculateSometing
statt
public TreeMap calculateSometing
Korrekt a Mundo.. Gracias.. DAS hat /*1*/ beseitigt.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
na mein Beispiel passte nicht so ganz, weil du wirklich insgesamt nur ein Objekt erstellst, nicht zwei,
ist nur die Frage wo, der Aufrufer muss das doch nicht machen und mühsam übergeben,
die Methode kann sich selber eine Map erstellen und die zurückgeben, siehe Code-Beispiel von Marco13
 

huckleberry

Bekanntes Mitglied
Problem gelöst.. Ich danke.
Ich habe es wie Marco es schrieb, Local nochmal definiert und zurückgegeben. Habe mit TreeMaps usw noch wenig Erfahrung ;)

Danke nochmals an alle für die schnelle Hilfe!
Super Forum, werde deswegen weiterhin ungeniert meine Fragen stellen :p
 

Marco13

Top Contributor
@Marco13
> auch wenn es in diesem Fall dasSELBE Objekt ist...

wie kann es dann aber zu den Warnings kommen?

Indem man es einmal quer durch eine Methode routet, dabei die Typinformation wegfallen läßt. (Dass das, was von der Methode zurückgegeben wird, dasselbe ist, wie das, was reinkommt, erkennt der Compiler nicht).

(Das hast du wahrschreinlich schon gesehen :oops: )

@huckleberry Bei
Java:
TreeMap<Double, SpecialObj> myTreeMap = new TreeMap<Double, SpecialObj>();
myTreeMap = calculateSometing(time, para2, myTreeMap); /*1*/
 
public TreeMap calculateSometing(long time, SpecialObj myObj, TreeMap myLocalTreeMap) {
/..
return myLocalTreeMap;
}
wird genau das gemacht: Es wird ein Objekt übergeben, und dasSELBE wieder zurückgegeben, aber die Typinformationen fallen weg. Mit
Code:
TreeMap<Double, SpecialObj> myTreeMap = new TreeMap<Double, SpecialObj>();
myTreeMap = calculateSometing(time, para2, myTreeMap); /*1*/
 
public TreeMap[b]<Double, SpecialObj>[/b] calculateSometing(long time, SpecialObj myObj, 
    TreeMap myLocalTreeMap[b]<Double, SpecialObj>[/b]) {
/..
return myLocalTreeMap;
}
würde es gehen, aber wie angedeutet wurde ist diese Struktur ziemlich fragwürdig...
 
S

SlaterB

Gast
Indem man es einmal quer durch eine Methode routet, dabei die Typinformation wegfallen läßt. (Dass das, was von der Methode zurückgegeben wird, dasselbe ist, wie das, was reinkommt, erkennt der Compiler nicht).

(Das hast du wahrschreinlich schon gesehen :oops: )
die Warnings kamen aber schon beim Zugriff auf myTreeMap, unabhängig von der Rückgabe,
die übrig bleibende Möglichkeit war ein gleichnamiges Klassenattribut/ statische Variable vom Typ TreeMap ;)

auf eine lokale Variable von anderer Stelle hätte eh nicht zugriffen werden können,
aber ganz egal, war eh noch anders
 

Marco13

Top Contributor
Die Fehlermeldungen aus dem ersten Post hätten durch
Java:
//...blabla
TreeMap<Double, SpecialObj> myTreeMap = new TreeMap<Double, SpecialObj>();
myTreeMap = calculateSometing(time, para2,  para3);
 
public TreeMap calculateSometing(long time, SpecialObj myObj, int parameter3) 
{
        //....blabla
        TreeMap myTreeMap = new TreeMap(); // <<--------------- SOWAS HIER
        ...
m.E. vollständig erklärt werden können (wer weiß schon, wofür "blabla" so alles steht ;) )

Aber ist ja jetzt erledigt. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Map (TreeMap in TreeMap) Java Basics - Anfänger-Themen 1
N TreeMap alphabetisch sortieren? Java Basics - Anfänger-Themen 3
O Erste Schritte TreeMap nach Value sortieren Java Basics - Anfänger-Themen 2
H Collections Was ist schneller - HashMap + Sort v TreeMap? Java Basics - Anfänger-Themen 75
D TreeMap: Höheren Key ermitteln und den Value liefern Java Basics - Anfänger-Themen 3
C TreeMap Abfragen Problem Java Basics - Anfänger-Themen 7
F HashMap vs. TreeMap Java Basics - Anfänger-Themen 5
I TreeMap Java Basics - Anfänger-Themen 4
H TreeMap/HashMap synchronisieren Java Basics - Anfänger-Themen 2
M TreeMap Java Basics - Anfänger-Themen 4
H TreeMap<> statt TreeMap<Long, String> Java Basics - Anfänger-Themen 2
algebraiker TreeMap<Date,Object> navigieren? Java Basics - Anfänger-Themen 24
W Treemap remove Java Basics - Anfänger-Themen 5
N Frage zu TreeMap Java Basics - Anfänger-Themen 3
B OOP Jtree aus TreeMap<String, String[]> erstellen? Java Basics - Anfänger-Themen 6
H Datentypen TreeMap<Double, Object> - negative Werte? Java Basics - Anfänger-Themen 4
H TreeMap.remove(value) - und nicht mit key! Geht das? Java Basics - Anfänger-Themen 18
S Studentenverwaltung mit TreeMap Java Basics - Anfänger-Themen 8
F Treemap und Sortierung? Java Basics - Anfänger-Themen 2
G TreeMap Java Basics - Anfänger-Themen 6
T TreeMap lässt sich nicht sortieren Java Basics - Anfänger-Themen 8
P wie clont sich eine TreeMap? Java Basics - Anfänger-Themen 8
G TreeMap Probleme. Java Basics - Anfänger-Themen 10
G TreeMap vom 1. bis letzte eintrag durchgehen Java Basics - Anfänger-Themen 17
F TreeMap speichern und lesen Java Basics - Anfänger-Themen 3
Q TreeMap immer sortiert halten Java Basics - Anfänger-Themen 9
H Treemap mit zusammengesetzten Key erstellen Java Basics - Anfänger-Themen 13
G TreeMap sortieren über ArrayList als Value Java Basics - Anfänger-Themen 9
O TreeMap nach Object[] casten? Java Basics - Anfänger-Themen 3
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
Z Rückgabe eines Values in umgekehrte richtung Java Basics - Anfänger-Themen 5
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
R Methode Rückgabe Java Basics - Anfänger-Themen 10
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
J Rückgabe-Problem Java Basics - Anfänger-Themen 10
B Rückgabe von zwei Werten: String und double Java Basics - Anfänger-Themen 14
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
J Funktionen auf der Rückgabe eines Stacks (pop) Java Basics - Anfänger-Themen 6
karlmasutra Klassen Rückgabe eines Wertes aus einer anderen Klasse Java Basics - Anfänger-Themen 3
V Methoden Rekursive Methode mit String als Rückgabe Java Basics - Anfänger-Themen 7
L [Verständnisproblem] Array wird trotz void rückgabe verändert. Java Basics - Anfänger-Themen 5
S Rekursion Rückgabe - Türme von Hanoi Java Basics - Anfänger-Themen 16
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
F Get/Post als eigener Thread mit Rückgabe Java Basics - Anfänger-Themen 5
L Probleme bei Rückgabe eines Arrays in einer Methode Java Basics - Anfänger-Themen 47
L Frage zur Rückgabe von Werten bei Methoden Java Basics - Anfänger-Themen 4
P Rückgabe erflogt nicht als Double Java Basics - Anfänger-Themen 2
D Methoden ArrayList Rückgabe bringt komische Werte Java Basics - Anfänger-Themen 12
M Übergabe / Rückgabe Java Basics - Anfänger-Themen 6
A Rückgabe in for-Schleife Java Basics - Anfänger-Themen 2
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
G Methoden mehrdimonsionale Arrays als Rückgabe Java Basics - Anfänger-Themen 2
S Methode rückgabe wiederverwenden Java Basics - Anfänger-Themen 4
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
llabusch Methoden Rückgabe einer Methode verwerden Java Basics - Anfänger-Themen 1
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
R public static void Rückgabe Java Basics - Anfänger-Themen 5
H Array wird verändert ohne Rückgabe? Java Basics - Anfänger-Themen 7
S Rückgabe von einem Array Java Basics - Anfänger-Themen 7
S Problem mit Rückgabe Wert von Methoden Java Basics - Anfänger-Themen 5
M Serialize - Fehler bei Rückgabe von Objekt Java Basics - Anfänger-Themen 5
R CMD Rückgabe durchlesen Java Basics - Anfänger-Themen 14
W Rückgabe Methode mit Feld Java Basics - Anfänger-Themen 4
A Rekursion in Baum und ArrayList als Rückgabe Java Basics - Anfänger-Themen 2
N Rückgabe der Werte funktioniert nicht Java Basics - Anfänger-Themen 9
F Problem bei Rückgabe von StringBuffer aus Methode Java Basics - Anfänger-Themen 6
N HashMap fehlerhafte Rückgabe Java Basics - Anfänger-Themen 7
K Problem mit der Rückgabe Java Basics - Anfänger-Themen 3
R Rückgabe Array Java Basics - Anfänger-Themen 22
G Klasse überschreiben wenn Rückgabe über Methode Java Basics - Anfänger-Themen 6
M Methode mit Rückgabe Java Basics - Anfänger-Themen 2
D Maximum Subarray Problem; Problem mit der Rückgabe Java Basics - Anfänger-Themen 10
N Methoden und deren Rückgabe Java Basics - Anfänger-Themen 4
D Rückgabe einer Klasse Java Basics - Anfänger-Themen 20
M Rückgabe bei Exception Java Basics - Anfänger-Themen 4
H Rekursion und Rückgabe Java Basics - Anfänger-Themen 11
K Rückgabe aus Formular Java Basics - Anfänger-Themen 3
S HashMap: Rückgabe des key zu bestimmten value Java Basics - Anfänger-Themen 3
B "vollständige" Resultat Rückgabe Java Basics - Anfänger-Themen 8
G Problem mit der Rückgabe von einem Array Java Basics - Anfänger-Themen 3
A Beschreibung von Code und Rückgabe von Anzahl in ArrayList Java Basics - Anfänger-Themen 5
C Parameter rückgabe nach Prüfung an Klasse/Methode Java Basics - Anfänger-Themen 2
R Rückgabe vom ActionListener Java Basics - Anfänger-Themen 12
B JavaFilter true rückgabe Java Basics - Anfänger-Themen 23
S Rückgabe eines eingelesenen 2D Arrays aus Klasse heraus Java Basics - Anfänger-Themen 3
J datentyp -objectTyp Rückgabe Java Basics - Anfänger-Themen 2
zilti PHP-Script aufrufen und Rückgabe lesen Java Basics - Anfänger-Themen 2
G Array Rückgabe aus Programm Java Basics - Anfänger-Themen 6
0 Probleme bei Threads mit Rückgabe. Java Basics - Anfänger-Themen 6
C Rückgabe bei methoden Java Basics - Anfänger-Themen 2
S Probleme mit InputStream- Rückgabe Java Basics - Anfänger-Themen 4
G Warum ist die Rückgabe kein Integer? Java Basics - Anfänger-Themen 5
G Rückgabe Java Basics - Anfänger-Themen 6
G Rückgabe mehrdimensionales Array Java Basics - Anfänger-Themen 3
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
G Rückgabe einer Methoden bei Schließen des Fensters Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben