Generics in Java...

TheBohne

Aktives Mitglied
Hi ihr,
ich bin eigentlich kein Anfänger mehr... Doch dieses doofe und wahrscheinlich simple Problem stellt mich vor ein Problem welches ich einfach nicht gelöst bekomme...
Ziel ist es eine Klasse zu nutzen die ein zweidimensionales Array mit einem Generic besitzt.
Ein Beispielcode sieht so:
Code:
public class Test<T> {

private T[][] testArray = (T[][]) new Object[1][1];

public void setTest(T value) {
testArray[0][0] = value;
}

public T[][] getArray() {
return this.testArray;
}

public static void main(String[] args) {
Test<Integer> test = new Test<>();
test.setTest(3);
int number = test.getArray()[0][0];
System.out.println(number);
}
}

Sobald ich das Array zurück bekomme dritt eine ClassCastExeption auf...
Liegt wahrscheinlich daran wie ich das Array initialisiere, doch finde ich keinen anderen Weg es zu initialisieren...
Was übersehe ich?

Danke schon einmal für eure Antworten :)
 

InfectedBytes

Top Contributor
Das Problem ist, das Javas Generics keine "echten" Generics sind, sondern leider nur ein Compiler Trick. Habe es nicht ausprobiert, aber eigentlich sollte folgendes gehen:
Java:
T[][] array =(T[][])Array.newInstance(cls, d1, d2);
Wobei du allerdings etwas umständlich eine Class instance mitgeben musst, z.b.:
Java:
// constructor
public Test(Class<T> clazz) {
  T[][] array =(T[][])Array.newInstance(clazz, dimension1, dimension2);
}
Benutzen dann z.b. so:
Java:
Test<Integer> test = new Test<>(Integer.class);
 

TheBohne

Aktives Mitglied
Danke für die schnelle Antwort,
Die Antwort hatte ich auch gefunden.
Hatte gehofft es gibt etwas schöneres als den Typ vom Generic noch einmal zu übergeben :(
 

mrBrown

Super-Moderator
Mitarbeiter
Musst du denn zwingend irgendwo das ganze Array zurück geben?

Besser dürfte aber sein, nicht die Interna des Objects, also das ganze Array, zurückzugeben, sondern nur einzelne Werte
 

Nuiton

Bekanntes Mitglied
Ich meine, falls er es darf, Generic Lists anstatt Arrays zu benutzen.
Java:
public class Test<T>  {
    List<T> list =new ArrayList<T>();
    public Test(){

    }
    public void populate(T t){
        list.add(t);
    }
    public static  void main(String[] args){
        new Test<String>().populate("abc");
    }
}
Quelle
 

TheBohne

Aktives Mitglied
Wäre auch eine Möglichkeit.
Jedoch visualisiere ich mit dem Array ein Raster welches eine statische Größe besitzt.
Auf die Werte im Array greife ich per index zu. Hätte ich in diesem Fall eine ArrayList müsste ich zunächst mit add alle Werte initialisieren um keine IndexOutOfBounds zu bekommen.
Das Problem habe ich bei einem Array nicht.
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn du den Index übergibst und nur ein Element bekommst, statt dem ganzen Array, geht das auch ohne irgendwelche Tricks und CCE und du hast zusätzliche deinen internen State gekapselt ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
I Java Generics factory method Java Basics - Anfänger-Themen 2
U Java generics funktioniert nicht Java Basics - Anfänger-Themen 0
J Java Generics - Frage zu Types Java Basics - Anfänger-Themen 2
E Klassen java.util.ArrayList<E> als Generics Java Basics - Anfänger-Themen 16
lumo Java Generics Java Basics - Anfänger-Themen 19
B Java Listen und Generics Java Basics - Anfänger-Themen 35
M Java Generics LinkedList Java Basics - Anfänger-Themen 5
O Warnung zu Generics (Java 1.6) Java Basics - Anfänger-Themen 6
R Java Generics Java Basics - Anfänger-Themen 10
D Fragen zu Java-Generics Java Basics - Anfänger-Themen 2
H Generics machen mich verrückt Java Basics - Anfänger-Themen 8
MarvinsDepression Datentypen Generics: Erste Berührungen Java Basics - Anfänger-Themen 6
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
Cassy3 Generics - CompareTo Java Basics - Anfänger-Themen 21
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
districon Generics implementieren Java Basics - Anfänger-Themen 2
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Hilfe bei Generics Java Basics - Anfänger-Themen 11
G Generics Compilerfehler Java Basics - Anfänger-Themen 6
G Generics Methoden Java Basics - Anfänger-Themen 7
G Generics Java Basics - Anfänger-Themen 3
L Generics Tripel Java Basics - Anfänger-Themen 26
W Fragen zu Generics Java Basics - Anfänger-Themen 14
S Hilfe. Generics und BiFunctions Java Basics - Anfänger-Themen 10
X Wie Generics richtig benutzen ? Java Basics - Anfänger-Themen 5
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
I Generics und Comparable Java Basics - Anfänger-Themen 14
G Generics mit ? und Diamantoperator Java Basics - Anfänger-Themen 4
G Generics: Wildcard ? Java Basics - Anfänger-Themen 12
D Generics methode Java Basics - Anfänger-Themen 2
I Frage zu Generics und Wildcards Java Basics - Anfänger-Themen 2
N Generics und Casting eines Objekts Java Basics - Anfänger-Themen 1
A Generics Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
W Generics - Typ zurückbekommen Java Basics - Anfänger-Themen 4
Dimax Erste Schritte Generics von Profis leicht erklärt Java Basics - Anfänger-Themen 7
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
J Collections Generics: Typ wird nicht erkannt Java Basics - Anfänger-Themen 7
D Generics ArrayList: Bug im Quellcode Java Basics - Anfänger-Themen 14
C Generics Java Basics - Anfänger-Themen 8
M Generics getter und setter Methoden Java Basics - Anfänger-Themen 4
J Generics Java Basics - Anfänger-Themen 3
J Generics Datentypen vergleichen Java Basics - Anfänger-Themen 16
V Generics / eigene Liste Java Basics - Anfänger-Themen 4
O Generics - Implementierung Java Basics - Anfänger-Themen 7
Shizmo Frage zu Generics Java Basics - Anfänger-Themen 3
F Multiple Generics Java Basics - Anfänger-Themen 10
G Datentypen verschiedene Objekte in eine ArrayList, Generics Java Basics - Anfänger-Themen 2
H Typsicherheit/Generics Java Basics - Anfänger-Themen 1
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
S Generics und Comparable Interface Java Basics - Anfänger-Themen 5
A Generics Java Basics - Anfänger-Themen 4
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
R Compiler-Fehler Generics Problem Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
K Generics bei Klassen- und Interfacedeklarationen Java Basics - Anfänger-Themen 3
D toArray und Generics Java Basics - Anfänger-Themen 2
D Zwei Generics beim Überladen von Methoden Java Basics - Anfänger-Themen 3
C Erste Schritte Filter für Generics oder ähnliches Java Basics - Anfänger-Themen 2
M Frage zu Generics-Deklaration Java Basics - Anfänger-Themen 5
S Frage zu Collection-Generics in Subklassen Java Basics - Anfänger-Themen 6
M <T> Generics Java Basics - Anfänger-Themen 7
B Interface Generics: prüfen ob Interface deklariert wird Java Basics - Anfänger-Themen 18
T Polymorphie Generics-Problem Java Basics - Anfänger-Themen 2
B Hilfe beim Verständnis zu Generics Java Basics - Anfänger-Themen 7
J Array Generics Java Basics - Anfänger-Themen 3
J Generics casten Java Basics - Anfänger-Themen 14
J Generics wildcard Java Basics - Anfänger-Themen 6
E Listen und Generics Java Basics - Anfänger-Themen 9
X Generics Java Basics - Anfänger-Themen 6
M Datei einlesen mit generics? Java Basics - Anfänger-Themen 9
D Warum sind Generics mit Vorsicht zu genießen? Java Basics - Anfänger-Themen 6
M OOP Mit Generics auf Methoden zugreifen? Java Basics - Anfänger-Themen 10
S Generics Java Basics - Anfänger-Themen 4
G Generics kein Zugriff auf getter eines Objekts Java Basics - Anfänger-Themen 4
L Datentypen Problem mit Generics und null Java Basics - Anfänger-Themen 6
W Interface Problem mit Generics Java Basics - Anfänger-Themen 2
M OOP Generics und Wildcards Java Basics - Anfänger-Themen 3
D Generics - Warnmeldungen Java Basics - Anfänger-Themen 2
M Polymorphie generics einsteigerprobleme Java Basics - Anfänger-Themen 3
D Vererbung Generics und Vererbung Java Basics - Anfänger-Themen 8
C Generics Array Java Basics - Anfänger-Themen 43
D Fehler mit generics Java Basics - Anfänger-Themen 10
S Generics - CaseInsensitiveMap selber schreiben? Java Basics - Anfänger-Themen 5
K Datentypen Generics Java Basics - Anfänger-Themen 3
P Comparable und Generics Java Basics - Anfänger-Themen 6
I Generics (Subtypen) Java Basics - Anfänger-Themen 17
N Typeinschränkung bei Generics Java Basics - Anfänger-Themen 13
C Generics und Cast Java Basics - Anfänger-Themen 5
H Generics werden in -source 1.2 nicht unterstützt Java Basics - Anfänger-Themen 16
M Datentypen Generics: Exacten Typ ermitteln Java Basics - Anfänger-Themen 6
N Generics und Interfaces Java Basics - Anfänger-Themen 5
S Generics und "generische Feldzuweisungen" Java Basics - Anfänger-Themen 5
M verlinkte Liste mit generics Java Basics - Anfänger-Themen 7
capgeti Datentypen Static methoden aus Superklasse mit Generics definieren? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben