Mit Generics Klasse erstellen die selbst T erweitert..?

sirbender

Top Contributor
Hallo,

kann ich mittels Generics eine Klasse erstellen die Instanzen von T aufnimmt und selbst eine Instanz von T ist?

Vielleicht hilft ein bischen Code um zu zeigen was ich meine:

Java:
class SelfContainer<T> extends T {

     public SelfContainer(T parent, T child) {
     }

}

Rectangle parent = new Rectangle();
Rectangle child = new Rectangle();
Rectangle rect = new SelfContainer(parent, child);

Wie ihr seht kann ich einfach schreiben "Rectangle rect" weil SelfContainer in diesem Fall ein Rectangle ist.

Ich nehme an, das geht nicht?
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Es würde auf jedenfall so funktionieren:
Java:
public class Test {

  public static void main(String[] args) {
    Shape parent = new Rectangle();
    Shape child = new Rectangle();
    Shape rect = new SelfContainer(parent, child);
  }
}

interface Shape {
}

class Rectangle implements Shape {
}

class SelfContainer<T extends Shape> implements Shape {

  public SelfContainer(T parent, T child) {
  }

}

Um auf deine Frage einfach zu beantworten: Nein. Du kannst keine generische Oberklasse/Interface für eine Klasse definieren.

Das was du tun kannst, ist ein Interface zu haben, dass wiederum einen Typparameter besitzt.

Java:
interface Universal<T> {
}

class Rectangle implements Universal<Rectangle> {
}

class SelfContainer<T extends Universal<T>> implements Universal<T> {

  public SelfContainer(T parent, T child) {
  }

}

Generelle Frage: Für was brauchst du das?
 

sirbender

Top Contributor
Ich haette gerne eine generelle Container-Klasse die ich nutzen kann um alle moeglichen Objekte reinzustecken und der Container sollte dann vom Typ des Objekts sein, d.h. ich kann direkt Methoden des Typ auf den Container aufrufen, der mein Objekt kapselt.

A a = new A();
Container c = new Container<?!?!>(a);

c.callMethodFromA();
 

Flown

Administrator
Mitarbeiter
nein es funktioniert so nicht. Außer du leitest dein Container deiner Klasse A ab und hälst es als Wrapper.
 

Tobse

Top Contributor
nein es funktioniert so nicht. Außer du leitest dein Container deiner Klasse A ab und hälst es als Wrapper.

Kleine Ergänzung: Das geht deswegen nicht, weil die JVM dann zur Laufzeit das "extends" ausführen müsste; das ist aber der Job des Compilers.
In C/C++ ginge das, weil das Pandon zu generics dort "Template" heisst. Hier wird für jeden Typ, den du benutzt (z.B. SelfContainer<A>, SelfContainer<B>) eigener Code compiliert, der den genauen Gegebenheiten entspricht. In Java wird der selbe Bytecode für alle Generic-Typen einer Klasse/Methode verwendet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
J Generics: Typparameter als Klasse zurückliefern Allgemeine Java-Themen 4
W Erweitern einer Klasse mit Generics Allgemeine Java-Themen 8
G ComboBox: Nur eine Art Klasse zulassen (Generics) Allgemeine Java-Themen 3
G Generics: Instanzieren einer Klasse in einer Methode. Allgemeine Java-Themen 2
J Best Practice Generics mit Enum Allgemeine Java-Themen 3
Zeppi Cast Object in Generics Allgemeine Java-Themen 4
P Generics und Arrays Allgemeine Java-Themen 6
M Generics / Typen Allgemeine Java-Themen 1
Kirby.exe InsertionSort mit Generics Allgemeine Java-Themen 33
Kirby.exe Vererbung bei Generics Allgemeine Java-Themen 7
H Klarnamen etc... (von Wie Generics lernen?) Allgemeine Java-Themen 26
D Wie Generics lernen? Allgemeine Java-Themen 26
L Compiler-Fehler Generics beim Anhängen von Predicates Allgemeine Java-Themen 1
W Vererbung Generics - mal wieder die verhaßte Rückwärtskompatibilität Allgemeine Java-Themen 2
S Verstaendnisfrage Generics Allgemeine Java-Themen 19
W Generics + Vererbung Allgemeine Java-Themen 47
I Methoden Generics-Methode Allgemeine Java-Themen 3
D Mit Generics arbeiten - Übungsaufgabe Allgemeine Java-Themen 3
K Factory Pattern: Mit Generics umgehen Allgemeine Java-Themen 6
G Generics Allgemeine Java-Themen 31
perlenfischer1984 Liste mit generics zurück liefern Allgemeine Java-Themen 8
Hacer Generics & Collections Allgemeine Java-Themen 8
Neumi5694 Interface Generics für Enum-Filterung verwenden Allgemeine Java-Themen 5
H Collector Generics Problem (incl. Stream & Lambda) Allgemeine Java-Themen 4
C Gemeinsame Oberklasse zweier Generics Allgemeine Java-Themen 10
erdmann Datentypen Methodendeklaration mit Generics Allgemeine Java-Themen 2
Z Datentypen Verschachtelte Generics Allgemeine Java-Themen 1
Neumi5694 Datentypen Generics Allgemeine Java-Themen 5
Tarrew Generics - Type erasure Allgemeine Java-Themen 5
N Problem mit Generics und Interface Allgemeine Java-Themen 4
H Generics als Parameter Allgemeine Java-Themen 1
kaoZ Generics und Vererbung Allgemeine Java-Themen 3
A Datentypen Generics: Wie am besten auf Typparameter zugreifen Allgemeine Java-Themen 2
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
vandread Kleine Generics Aufgabe aus einer Prüfung... wie ist das gemeint? Allgemeine Java-Themen 6
G Generics sind zu streng - oder ich zu naiv? Allgemeine Java-Themen 3
G Verschachtelte Generics Allgemeine Java-Themen 2
O Generics Allgemeine Java-Themen 42
M Problem mit Generics Allgemeine Java-Themen 10
M Generics (bounded wildcards statt Interface Bezeichnern) -- Sinn oder Unsinn? Allgemeine Java-Themen 2
darekkay Generics: Wildcard und Object Allgemeine Java-Themen 5
H Collections Generics und Reflection Allgemeine Java-Themen 6
F Google Guice + Generics + Vererbung Allgemeine Java-Themen 5
H Problem mit Java Generics Allgemeine Java-Themen 6
H Generics Allgemeine Java-Themen 5
P Probleme mit Generics Allgemeine Java-Themen 5
B Generics und primitve arrays Allgemeine Java-Themen 6
M Generics Allgemeine Java-Themen 11
1 Collections Generics, internes Verhalten Allgemeine Java-Themen 16
T Warnungsfreie Verwendung von Generics Allgemeine Java-Themen 11
M Probleme mit Generics Allgemeine Java-Themen 5
D Java Generics Allgemeine Java-Themen 8
2 Generics: bounded wildcards Allgemeine Java-Themen 4
J Generics / vermeiden von downcasts Allgemeine Java-Themen 2
2 Generics oder nicht? Allgemeine Java-Themen 8
E Problem mit Generics und Comparable Allgemeine Java-Themen 16
H Generics für Methode Allgemeine Java-Themen 14
N Überladen mit Hilfe von Generics Allgemeine Java-Themen 3
S Generics: Fuer Set<T> ein T-Klassenobjekt erhalten? Allgemeine Java-Themen 3
Q Der innere Typ von Generics? Allgemeine Java-Themen 3
N Generics-NullpointerException Allgemeine Java-Themen 7
2 Generics - Typ Allgemeine Java-Themen 12
P Generics Problem Allgemeine Java-Themen 10
S Type safety Warnings beim casten von Generics Allgemeine Java-Themen 6
N Generics Allgemeine Java-Themen 3
V Frage zu Generics Allgemeine Java-Themen 2
S java generics klassen deklaration Allgemeine Java-Themen 7
B hashtable für unterschiedliche Typen - mit Generics Allgemeine Java-Themen 8
E Generics Allgemeine Java-Themen 3
MQue Generics Allgemeine Java-Themen 4
R Problem mit Reflection und Generics Allgemeine Java-Themen 3
C Klassen, die aufeinander verweisen (mit Generics) Allgemeine Java-Themen 16
G Generics - W.card unter Nutzung von Annotationsklasse? Allgemeine Java-Themen 6
G sortieren von generics Allgemeine Java-Themen 10
G Generics in Map. Type of value abhängig vom key Allgemeine Java-Themen 3
A Generics Verständnisfrage Allgemeine Java-Themen 7
Z Generics funzt nicht? Allgemeine Java-Themen 2
T Generics Allgemeine Java-Themen 18
J Generics Expertenwissen? Allgemeine Java-Themen 5
S Generics-Problem Allgemeine Java-Themen 3
T Generics und Wil-dcards Allgemeine Java-Themen 8
Q Typen von Generics & Casten Allgemeine Java-Themen 3
S Generics Allgemeine Java-Themen 2
R Problem mit Generics Allgemeine Java-Themen 2
G Trotz Generics Cast-Fehler! Allgemeine Java-Themen 5
T TreeMap durch Comparator mit Generics sortieren Allgemeine Java-Themen 9
T Generics und instanceof Allgemeine Java-Themen 10
T Generics und Exceptions Allgemeine Java-Themen 6
M Beliebig viele Typen bei Generics Allgemeine Java-Themen 3
G Reflection objekt mit generics erzeugen Allgemeine Java-Themen 5
S Singleton Pattern mit Generics Allgemeine Java-Themen 4
G Generics und Comparable Allgemeine Java-Themen 11
H Generics Problem Allgemeine Java-Themen 3
F Generics: spricht etwas dagegen raw types zu verwenden? Allgemeine Java-Themen 31
M Generics - besser programmieren, Warnung umgehen Allgemeine Java-Themen 4
E Java, UML, Generics Allgemeine Java-Themen 6
P Array von Vectoren + Generics Allgemeine Java-Themen 6
M ArrayList erweitern - generics Allgemeine Java-Themen 4
E Generics -> UML Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben