![]() |
[Java] Generisches Array wie erstellen?
Ich habe eine Methodensignatur fest vorgegeben, der letze Teil ist:
....(T[] array) { Nur wie erstelle ich sp ein T[] array, das ich überegeben kann? Z.b. mit Integern gefüllt, aber T[] test = {new Integer(1), new Integer(2)} klappt ja nicht... Ich habe schon alles durchprobiert und überall gesucht, aber nichts funktioniert. |
Vll versuchst es mal mit z.B. :
Object[] testArray = new Object[<anzahl deiner Objekte>]; testArray[0] = "Bla text"; testArray[1] = new Integer(-10); |
// Edit: Sry das Forum spackte mal wieder =)
|
Danke, aber geht leider nicht...
Es heißt, das der Typ T[] sein muss und nicht Object[]. Das Array muesste von dieser Methode angenommen werden. Minimalbespiel: public static boolean myMethod(T[] array) { //code } |
Soweit ich weiß ist es nicht möglich ein generisches Array in Java zu erstellen.
Was möglich wäre wäre z.b. ein Vector oder eine List die du dann typisierst. Das wäre das einzige was mir so spontan einfällt. |
Willst du einen genauen Typ haben (Wenn ja welchen?) oder soll die Methode mit jedem Typ (außgenommen Grundtypen) umgehen können?
|
@ fumding Hab gerade mal in meinen Büchern nachgeschaut dein Ansatz war volkommen richtig:
Generische Klassen Die Idee für generische Typen ist, eine Klasse zu schreiben, die für verschiedene Typen als Inhalt zu benutzen ist. Das geht bisher in Java, allerdings mit einem kleinen Nachteil. Versuchen wir einmal, in traditionellem Java eine Klasse zu schreiben, in der wir beliebige Objekte speichern können. Um beliebige Objekte speichern zu können, brauchen wir ein Feld, in dem Objekte jeden Typs gespeichert werden können. Dieses Feld muß daher den Typ Object erhalten /Edit: Ich verlink noch mal auf die Quelle zum selber nachlesen: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] |
Die Aufgabenstellung ist nur:
Methodensignatur, darf nicht verändert werden: Code:
public static <T extends Comparable<T>> List<T>sortMe(T[] array) des uebergebenen Arrays sollen sortiert in einer selbst geschriebenen Liste zurueckgegeben werden. Das Sortieren und die Liste habe ich schon. Alle möglichen Typen, die Comparable sind, sollten für T möglich sein. Werde mir dann mal den verlinkten Blog durchlesen. |
Danke, genau das ist es ;)
Das geht super: // Eingebaute Klassen welche bereits Comparable implementieren Integer[] numbers = new Integer[10]; numbers[0] = new Integer(5); ... List<Integer> sortedNumbers = Foo.sortMe(numbers); Ich hatte es immer so probiert: int[] test = new int[5]; test[0] = new Integer(1); Aber mit dem Wrapper gleich beim Typ des Arrays geht es :) Gibt es Debugger für java Bytecode, in etwa so wie OllyDBG für exe / dll? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.