Hallo zusammen,
ich bin neu im Forum und komme aus der Ecke C/C++ und Python.
Daher entschuldigt bitte, falls mein Java-Wording noch nicht perfekt ist.
Bei meinen Problem geht es um folgendes Szenario:
Ich muss ein paar Klassen eines Java-Programmes erweitern, so dass dieses Programm als externe Library in ein neues Projekt eingebunden werden kann.
Dabei darf ich das Programm im Quellcode nicht anfassen sondern es nur als JAR in mein neues Projekt einbinden.
Ich möchte im neuen Projekt dieselbe Package-Struktur und denselben Klassen-Namen der Original-Klassen verwenden. Dadurch können Kollegen, die das alte Programm kennen, wie gewohnt ihre Klassen anlegen und nun auch auf die neuen Funktionen zurückgreifen.
Im Prinzip stelle ich mir folgendes vor (Pseudo-Code):
Altes Programm mit zu erweiternder Klasse (wird als Jar eingebunden):
Neues Projekt/Library:
Projekt der Kollegen:
So wie ich es beschrieben habe, kann man es leider nicht programmieren.
Wie gesagt, den Quellcode des jar-Files darf ich leider nicht anfassen.
Folgende Ideen sind mir bis jetzt gekommen:
- Klasse mit Vererbung und neuen Funktionen erstellen. Alte Klassen entladen und neue Klassen an deren stelle laden (Selber Speicherbereich).
- Irgendeine Java-Funktion, die umgekehrte Vererbung ermöglicht. Ich zwinge der Eltern-Klasse quasi meine neuen Funktionen auf (es wird keine neue Klasse erstellt).
Mir ist klar, dass das ganze wahrscheinlich nicht sehr "sauber" ist.
Hat jemand eine Idee?
Dank im Vorraus,
chackie-lee
ich bin neu im Forum und komme aus der Ecke C/C++ und Python.
Daher entschuldigt bitte, falls mein Java-Wording noch nicht perfekt ist.
Bei meinen Problem geht es um folgendes Szenario:
Ich muss ein paar Klassen eines Java-Programmes erweitern, so dass dieses Programm als externe Library in ein neues Projekt eingebunden werden kann.
Dabei darf ich das Programm im Quellcode nicht anfassen sondern es nur als JAR in mein neues Projekt einbinden.
Ich möchte im neuen Projekt dieselbe Package-Struktur und denselben Klassen-Namen der Original-Klassen verwenden. Dadurch können Kollegen, die das alte Programm kennen, wie gewohnt ihre Klassen anlegen und nun auch auf die neuen Funktionen zurückgreifen.
Im Prinzip stelle ich mir folgendes vor (Pseudo-Code):
Altes Programm mit zu erweiternder Klasse (wird als Jar eingebunden):
Java:
package com.company.testen;
public class test
{
public String auto() ...
public String fahrrad() ...
}
Java:
package com.company.testen;
public class test extends test
{
public String schiff() ...
public String rakete() ...
}
Java:
import com.company.testen;
public class Main {
public static void main() {
test pruefen = new test();
pruefen.auto()
pruefen.fahrrad()
pruefen.schiff()
pruefen.rakete()
}
}
So wie ich es beschrieben habe, kann man es leider nicht programmieren.
Wie gesagt, den Quellcode des jar-Files darf ich leider nicht anfassen.
Folgende Ideen sind mir bis jetzt gekommen:
- Klasse mit Vererbung und neuen Funktionen erstellen. Alte Klassen entladen und neue Klassen an deren stelle laden (Selber Speicherbereich).
- Irgendeine Java-Funktion, die umgekehrte Vererbung ermöglicht. Ich zwinge der Eltern-Klasse quasi meine neuen Funktionen auf (es wird keine neue Klasse erstellt).
Mir ist klar, dass das ganze wahrscheinlich nicht sehr "sauber" ist.
Hat jemand eine Idee?
Dank im Vorraus,
chackie-lee