Interface Methoden nicht aufrufbar

HimBromBeere

Top Contributor
Malzzeit,

seit langer Zeit hab ich auch mal wieder ein kleines Problem, bei dem ich irgendwie den rund gerade nicht sehe...

Ich habe ein Interface IRow, welches die Methoden
Code:
Object getValue(String key)
sowie void
Code:
setValue(String key)
und void
Code:
setValue(String key, Object value)
vorschreibt. Alle meine Zeilen liegen in einer Tabelle (
Code:
AbstractTable
) in einer
Code:
LinkedList<IRow>
drin. Nun das Problem: sömtlicher der im Interface vorgeschriebenen Methoden sind einfach nicht verwendbar, wenn ich z.B. folgendes mache:
Java:
for (IRow row: this.rows) if (row.getValue(key) == value) rows.add(row);

Oh, beim Schreiben ist mir gleich mal ein Fehler aufgefallen, den ich die ganze Zeit noch gar nicht gesehen hab: Vergleiche für Objekte mit equals... werd ich gleich mal ändern 😀 Das ändert aber am Problem erstmal nix.

Bin ich blind oder doof oder ...?!


EDIT: Compilermeldung: The method getValue(String) is undefined for the Type IRow
 
Zuletzt bearbeitet:
Oh, beim Schreiben ist mir gleich mal ein Fehler aufgefallen, den ich die ganze Zeit noch gar nicht gesehen hab: Vergleiche für Objekte mit equals... werd ich gleich mal ändern 😀 Das ändert aber am Problem erstmal nix.

Hast du denn irgendwo eine halbwegs sinnvolle Implementierung von [c]equals()[/c] (und ggf. [c]hashCode()[/c])? Ansonsten bringt equals() genau gleich viel wie ==, nämlich einen Referenzvergleich.
 
Hast du denn irgendwo eine halbwegs sinnvolle Implementierung von equals() (und ggf. hashCode() )? Ansonsten bringt equals() genau gleich viel wie ==, nämlich einen Referenzvergleich.
Jein, für einige der Attribute ja, dieses Problem ist mir aber tatsächlich jetzt erst aufgefallen, dem muss ich mich ein ander mal widmen.

EDIT: Auf wundersame Weise hat sich das Problem gerade verflüchtigt... und ein Loch aus 30weiteren hinterlassen, aber soweit ich das beurteilen kann, keine gravierenden mehr 😀
 
Zuletzt bearbeitet:
passiert bei mir manchmal wenn Eclipse sich verhackt hat nach ein paar Refactorings. Clean build oder neustart von eclipse regelt das ganze meist.
 
Was soll die Methode setValue(String key) überhaupt bewirken?

Poste doch den ganzen Code, damit überhaupt ersichtlich wird, was Du versuchst. Wenn Du mit key und value arbeiten willst, solltest Du eine Klasse von Map verwenden.
 
Zuletzt bearbeitet:
Tja, was könnte sie wohl bewirken? Deine Vermutung mit der Map war schon richtig, darum geht es. Hinter der Klasse steckt auch irgendwo eine solche Map, aber da die Klasse noch einiges mehr können soll (und zugleich aber auch nicht sämtliche Methoden der Map nach außen sichtbar sein sollen), wird keine Map erweitert sondern lediglich benutzt. Aus dem selben Grund leite ich auch mittlerweile keine Klassen mehr von ArrayList o.ä. ab, da ich immer nur gewisse Funktionen hiervon nach außen weitergeben möchte (auch wenn intern natürlich trotzdem eine solche Liste verwendet wird).
Wie ich aber bereits erwähnte, das Problem hat sich bereits erübrigt, hauptsächlich durch die Verwendung von Interfaces gegenüber Generics. Das war doch auf Dauer etwas lästig und unübersichtlich, die ganzen Fragezeichen für die Generics mitzuführen, daher hab ich jetzt nur noch Listen, in die ich Interface-Objekte reinstecke, keine konkreten Objekte (ich weiß, dass das jetzt nicht richtig formuliert ist, aber ich nehme an, ihr wisst, was ich meine).
 

Zurück
Oben