Mahlzeit,
ich möchte eine Methode schreiben, welche den Übergabeparameter eines generischen Typs zu erst darauf prüft, ob es sich dabei um ein Feld handelt. Ist dem nicht so, wird eine Ausnahme geworfen.
Wenn es sich bei dem generischen Typ um ein Feld handelt, so ist die Dimension des Feldes zu bestimmen und dann entsprechend eine tiefe Kopie anzulegen.
Der Anfang ist schnell gemacht:
Ist mein Vorhaben realisierbar?
1.)
Um der Komplexität der unbekannten Dimensionierung Herr zu werden, sind doch eigentlich die gleiche Anzahl Schleifen erforderlich, wie Anzahl der Dimensionen des Feldes.
2.)
Wie lässt sich eine Dimension eines vermeintlich generischen Typen ansprechen.
3.)
Wie lässt sich überhaupt ein Feld eines generischen Typen initialisieren?
4.)
Eine Methode "clone()" müsste dem unbekannten generischem Typen beiliegen. Wie lässt sie sich aufrufen?
Im Moment bin ich mir sicher, dass dieses Vorhaben nicht möglich ist. Ich hoffe ihr könnt mich vom Gegenteil überzeugen.
ich möchte eine Methode schreiben, welche den Übergabeparameter eines generischen Typs zu erst darauf prüft, ob es sich dabei um ein Feld handelt. Ist dem nicht so, wird eine Ausnahme geworfen.
Wenn es sich bei dem generischen Typ um ein Feld handelt, so ist die Dimension des Feldes zu bestimmen und dann entsprechend eine tiefe Kopie anzulegen.
Der Anfang ist schnell gemacht:
Java:
...
public static <Feld> Feld tiefeFeldkopie(Feld feld) throws Exception{
String klassentyp = feld.getClass().toString();
int dimension = 0;
Feld feldkopie = null;
for(int z = 6; klassentyp.charAt(z) == '['; z++, dimension++){}
System.out.println(dimension);
if(dimension == 0){
throw new Exception("Kein Feld!");
}else{
// ?
}
return feldkopie;
...
Ist mein Vorhaben realisierbar?
1.)
Um der Komplexität der unbekannten Dimensionierung Herr zu werden, sind doch eigentlich die gleiche Anzahl Schleifen erforderlich, wie Anzahl der Dimensionen des Feldes.
2.)
Wie lässt sich eine Dimension eines vermeintlich generischen Typen ansprechen.
3.)
Wie lässt sich überhaupt ein Feld eines generischen Typen initialisieren?
4.)
Eine Methode "clone()" müsste dem unbekannten generischem Typen beiliegen. Wie lässt sie sich aufrufen?
Im Moment bin ich mir sicher, dass dieses Vorhaben nicht möglich ist. Ich hoffe ihr könnt mich vom Gegenteil überzeugen.