Array mit unbekannten Objekttypen verändern

Nimmer

Grünschnabel
Hallo zusammen,

ich habe eine Methode geschrieben die zwei "Bereiche" in einem Array vertauscht. Das Problem hierbei war, dass die Methode für beliebige Arrays funktionieren sollte. Es ist vor dem Aufruf nicht klar welche Art von Objekten im Array stehen und welche Dimensionen das Array hat.

Die Mehtode funktioniert inzwischen, aber ich bin mir nicht sicher ob ich einen "vernünftigen" Ansatz gewählt habe. Guckt euch das Ganze doch mal an und sagt mir was ihr davon haltet.

Code:
	private static void swap(Object[] array, int i, int j) throws ClassNotFoundException{
		String className = array[i].getClass().getName();

		Object tmp = array[i];
		array[i] = array[j];
		array[j] = Class.forName(className).cast(tmp);
	}
 
Wozu das Casten?

Java:
private static void swap(Object[] array, int i, int j) {
	Object tmp = array[i];
	array[i] = array[j];
	array[j] = tmp;
}
 
Oh ... es funktioniert auch ohne.

Zu Begin habe ich herum experimentiert und Object-Arrays in Objects und zurück gecasted.
Da scheine ich letztendlich den Überblick verloren zu haben, bin gar nicht mehr auf den Gedanken gekommen das es auch so funktionieren könnte.

Tut mir leid, dass ich deine Zeit verschwendet habe
 
Und zum Ansatz: Weshalb willst Du die Elemente swappen?

Ich bin dabei eine Bibliothek für evolutionäre Algorithmen zu erstellen.
Letztendlich soll es damit möglich sein die Algorithmen einfach aus einer Reihe von Komponenten zusammen zu stellen.
Das Swappen der Elemente ist Teil eines der grundlegendsten Mutationsalgorithmen.
 
Swap kenne ich insbesondere bei eigenen Sortieralgorithmen. In Java gibt es Generics für beliebige Objekttypen, welche auch eine Methode sort() anbieten, deshalb die Frage.
 
Zurück