Lassen Sie mich damit beginnen, was ich tun möchte und dann einige Fragen stellen, die ich habe.
Ich möchte ein allgemeines Java-Programm entwickeln, das eine Obermenge einer Reihe von Programmen (nennen wir sie Programmvarianten) ist. Insbesondere hat das allgemeine Programm Methoden, die nur von einer oder mehreren Programmvarianten (aber nicht von allen) verwendet werden. Bei einer bestimmten Konfiguration möchte ich unnötige Methoden entfernen und nur die kleinste Menge von Methoden für eine Programmvariante behalten.
Ich habe zum Beispiel ein allgemeines Programm wie unten:
public class GeneralProgram {
// this method is common for all variants
public void method1() {};
// this method is specific to variant 1
public void method2() {};
// this method is specific to variant 2
public void method3() {};
}
Nach der Beschneidung des Programms auf der Grundlage der Konfiguration für Variante 1 lautet das Ergebnis dann
public class GeneralProgram {
// this method is common for all variants
public void method1() {};
// this method is specific to variant 1
public void method2() {};
}
Es spielt keine Rolle, ob der resultierende Klassenname mit dem ursprünglichen Namen übereinstimmt oder nicht. Ich möchte nur den Inhalt der Klasse bereinigen.
Also, hier sind meine Fragen:
-
Haben Sie eine Idee, wie man dies realisieren kann, abgesehen von der Textverarbeitung auf niedriger Ebene?
-
Ich weiß, dass ich aspectJ verwenden kann, um bestimmte Methoden zur Laufzeit zu deaktivieren/aktivieren, aber was ich wirklich tun möchte, ist die Durchführung dieser Aufgabe vor der Bereitstellung des Programms. Gibt es eine Technik in Java für diesen Zweck?