Abstract Method & Generics

OasisCritter

Bekanntes Mitglied
Hallo,

ist es denn nicht möglich einer abstracten Methode einen generischen Parameter hinzuzufügen, sodass die Erben, immer mit ihren eigenen Typ arbeiten können. Sieht ein bissl komisch aus weil die Klasse vor dem generischen Parameter fehlt, so kanns nicht funktionieren aber wie ist die Alternative?

Java:
public abstract void setWindow( <? extends MyFrame> window);

Nehmen wir an der Erbe wäre childFrame extends MyFrame...

Nun sollte die Methode in childFrame so aussehn
Code:
public void setWindow( childFrame window);

Da die abstracte Methode "setWindow" in jedem Erben neu implementiert werden muss, sollte es diese Möglichkeit doch geben?


MfG
 

DerEisteeTrinker

Bekanntes Mitglied
Ich kenn zwar nicht die genauen Hintergründe deiner Anwendung bzw. deines Quellcodes, aber probier es mal mit einem Interface.

Java:
public abstract void setWindow( IMyFrame window);

Mit dem Interface ist es dir ja egal, welches der eventuell vielen Kinder es ist. Wenn du dann iwann etwas bestimmtes brauchst, dann machst du halt einen cast.
 
B

bygones

Gast
Mit dem Interface ist es dir ja egal, welches der eventuell vielen Kinder es ist. Wenn du dann iwann etwas bestimmtes brauchst, dann machst du halt einen cast.
was - sorry - gelinde gesagt größter Unsinn ist... ein Interface zu deklarieren um dann wieder auf einen konkreten Typen zu casten - doppelter fehler.

@TE:
wenn deine Klasse Typparameter braucht dann mach die Klasse generisch
 

DerEisteeTrinker

Bekanntes Mitglied
@bygones

Ich programmiere schon seit mehreren Jahren mit Java und diesen Cast hinter einem Interface habe ich bisher immer nur in JUnit-Tests vollzogen, weil ich dann in den konkreten Objekten noch zusätzliche Möglichkeiten geschaffen habe, um die Inhalte darzustellen, ohne den Quelltext mit Log-Ausgaben zu überfrachten oder ewig und drei Tage den Debugger zu bemühen. Im reinen Produktiveinsatz habe ich es immer vermieden. Denn durch geschicktes Design brauche ich einen Cast garnicht.

Das es die ultimative Lösung ist, sag ich ja garnicht. Aber es ist eine von vielen Wegen nach Rom.
 

Marco13

Top Contributor
Im Zweifelsfall
Code:
abstract class Something<T extends MyFrame>
{
    public abstract void setWindow(T window);
}
 

OasisCritter

Bekanntes Mitglied
Im Zweifelsfall
Code:
abstract class Something<T extends MyFrame>
{
    public abstract void setWindow(T window);
}

Ja, aber so müssten ja alle Klassen von "Something" erben und nicht von MyFrame.
Und selbst dann, ist die folge, dass wenn ich "Something" erstmal initialisiert habe, dann haben alle Erben von "Something" den gleichen Parameter. Und da wären wir wieder am Anfang...

Bsp.: new Something<MyFrame>();

childFrame extends Something...

Java:
public class childFrame() { ...

     public void setWindow( MyFrame window);

}

##############################

Zu: EisteeTrinker:

Casten könnt ich auch mit den abstracten Methoden, dazu brauch ich nicht extra ein Interface.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M abstract method does not override or implement.... Java Basics - Anfänger-Themen 7
Y Theorie: Abstract Method Java Basics - Anfänger-Themen 6
F does not overwride abstract method Java Basics - Anfänger-Themen 2
G Abstract Class - Abstract Method Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
S Wann Methode abstract? Java Basics - Anfänger-Themen 10
O Verständniss Problem bei abstract class Java Basics - Anfänger-Themen 7
H abstract und interface Java Basics - Anfänger-Themen 4
H abstract - Wozu? Java Basics - Anfänger-Themen 6
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
S Compiler-Fehler not abstract and does not override Java Basics - Anfänger-Themen 9
B Fehler : class is abstract and does not overwrite Java Basics - Anfänger-Themen 2
B klasse abstract Java Basics - Anfänger-Themen 9
R Wofür abstract? Java Basics - Anfänger-Themen 29
E Klasse abstract machen Java Basics - Anfänger-Themen 3
G Schlüsselworte Bedeutung von abstract Java Basics - Anfänger-Themen 2
C Liste mit Attribut Abstract vererben Java Basics - Anfänger-Themen 11
P Problem mit Eclipse "must be declared as abstract" Java Basics - Anfänger-Themen 3
B abstract static Java Basics - Anfänger-Themen 16
T abstract class Java Basics - Anfänger-Themen 8
K abstract Java Basics - Anfänger-Themen 8
W abstract static Java Basics - Anfänger-Themen 3
G Verständnisfrage zum Interface und Abstract Java Basics - Anfänger-Themen 3
A in abstract Klasse private Variablen Java Basics - Anfänger-Themen 3
J abstract & Polymorphismus Java Basics - Anfänger-Themen 11
K Problem mit Abstract Table Model Java Basics - Anfänger-Themen 5
D Fehlermeldung "Time is not abstract" Java Basics - Anfänger-Themen 6
T Problem mit Abstract Windowing Toolkit(simples Problem) Java Basics - Anfänger-Themen 8
P Adaptor, Abstract Factory Java Basics - Anfänger-Themen 12
K <class> is not abstract and does not override abstract Java Basics - Anfänger-Themen 5
S Brauche Hilfe bei "abstract" Java Basics - Anfänger-Themen 12
G fenster abstract Java Basics - Anfänger-Themen 18
R abstract class <-> instance Java Basics - Anfänger-Themen 6
R finaler Wert in outerMethod von method in InnerMethodClass Java Basics - Anfänger-Themen 2
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
P myClass?.method() in Java Java Basics - Anfänger-Themen 4
T setFill method Java Basics - Anfänger-Themen 3
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
N The method setSaldo(double) in the type Konto is not applicable for the arguments (int, int) Java Basics - Anfänger-Themen 2
A startsWith method und substring Java Basics - Anfänger-Themen 2
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Java Generics factory method Java Basics - Anfänger-Themen 2
V the static method should be accessed is a static way Java Basics - Anfänger-Themen 6
N Erste Schritte "non-static method" oder "XYZ can not be resolved" Java Basics - Anfänger-Themen 21
K Eigene Annotations, Pre-/Post-/Call-Method Java Basics - Anfänger-Themen 6
B Threads Thread sleep() Method einfache Frage Java Basics - Anfänger-Themen 8
G Was als main Method Java Basics - Anfänger-Themen 6
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
E Array to String Method Reverse Java Basics - Anfänger-Themen 5
D Methoden undefined method Java Basics - Anfänger-Themen 13
S Method mit Eingabe abrufen Java Basics - Anfänger-Themen 1
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
U Method References Java Basics - Anfänger-Themen 1
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
P Variablen einer Methode in andere Method übergeben Java Basics - Anfänger-Themen 6
B Methoden The method mirror(double[]) in the type Convolution is not applicable for the arguments (double) Java Basics - Anfänger-Themen 8
J easy remove method Java Basics - Anfänger-Themen 1
R The method printf(String, Object[]) in the type printStrem in not applicable for the arguments ... Java Basics - Anfänger-Themen 3
M Deklaration und Initialisierung bei Method Erstellung Java Basics - Anfänger-Themen 12
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
K String equalIgnoreCase() Method Java Basics - Anfänger-Themen 19
E non-static method und static context Java Basics - Anfänger-Themen 15
L Command Prompt / Main Method / String Java Basics - Anfänger-Themen 9
M Methoden "Non-static method xy cannot be referenced from a static context" Java Basics - Anfänger-Themen 20
T selection method does not contain a main type Java Basics - Anfänger-Themen 7
U UML Factory Method Java Basics - Anfänger-Themen 4
R Compiler-Fehler Cannot find symbol (Method printIn) Java Basics - Anfänger-Themen 3
H non-static method cannot be referenced from a static context Java Basics - Anfänger-Themen 2
L Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 6
B Object "Method" in TreeSet, Fehler beim Vergleichen/Comparable Java Basics - Anfänger-Themen 9
M Problem mit Static Method Java Basics - Anfänger-Themen 8
W Main-method in Object-classes Java Basics - Anfänger-Themen 5
J Compiler findet method nicht Java Basics - Anfänger-Themen 12
M This method must return a result of type int Java Basics - Anfänger-Themen 13
M Fehlermeldung: the method.... ist undefined for the type object Java Basics - Anfänger-Themen 6
S this method must return a result of type double Java Basics - Anfänger-Themen 2
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
C Methoden numberField.getDouble no such method error Java Basics - Anfänger-Themen 4
F Mal wieder: Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 9
F Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 3
Q non-static method blub cannot be referenced from a static context Java Basics - Anfänger-Themen 6
E Netbeans, "class does not have a main method" Java Basics - Anfänger-Themen 8
L no such method error: main() Java Basics - Anfänger-Themen 2
N public class -> public method -> variable private? Java Basics - Anfänger-Themen 10
R Could not find main method Java Basics - Anfänger-Themen 3
U Boolean istGleich() Method Java Basics - Anfänger-Themen 15
Luk10 method () not found Java Basics - Anfänger-Themen 9
A OOP Fehler non-static method can not be[...] Java Basics - Anfänger-Themen 2
N Reference to non-static method Java Basics - Anfänger-Themen 8
G non static method scale(int,int) cannot be referenced from a static context Java Basics - Anfänger-Themen 16
A The method getYear() from the type Date is deprecated Java Basics - Anfänger-Themen 6
A cannot find symbol - symbol : method Java Basics - Anfänger-Themen 5
S The method readInt() Problem Java Basics - Anfänger-Themen 5
E method undefined - wo ist der Fehler? Java Basics - Anfänger-Themen 5
J non static method cannot be referenced from static context Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben