B
bananenkasper
Gast
Hallo zusammen,
ich schreibe gerade an einem Command-Line-Programm.
Es gibt natürlich mehrere Command-Line-Parameter, die ich abfrage. (Nutze dazu Apache CLI)
Ich versuche dabei dem Anspruch zu genügen, dass das Programm gut erweiterbar und gekapselt ist, was auch bedeutet, dass ich nachträglich ohne grosse Probleme neue Optionen einbauen kann.
Die Optionen haben verschiedene Datentypen, wie z.B. ein File, das eingelsen wird, ein Suchstring, oder verschiedene Integer und Double Werte.
Dazu folgender Beispiel-Code:
Meine Frage ist jetzt, wie kann ich die verschiedenen Programm-Optionen verwalten, ohne festzulegen, welchem Datentyp sie entsprechen?
Wie kann ich konkrekt in obigem Beispiel das Casten vermeiden?
Ich hoffe es git eine elegante Lösung!
Freue mich auf Vorschläge!
mfg
ich schreibe gerade an einem Command-Line-Programm.
Es gibt natürlich mehrere Command-Line-Parameter, die ich abfrage. (Nutze dazu Apache CLI)
Ich versuche dabei dem Anspruch zu genügen, dass das Programm gut erweiterbar und gekapselt ist, was auch bedeutet, dass ich nachträglich ohne grosse Probleme neue Optionen einbauen kann.
Die Optionen haben verschiedene Datentypen, wie z.B. ein File, das eingelsen wird, ein Suchstring, oder verschiedene Integer und Double Werte.
Dazu folgender Beispiel-Code:
Code:
public static void main(String[] args) {
I_Options options = new Options();
options.addOption(E_OptionType.FILE, new OptionFile());
File file = (File) options.getOption(E_OptionType2.FILE);
}
Code:
public enum E_OptionType {
FILE
}
Code:
public interface I_Options {
void addOption(E_OptionType type, I_Option<?> option);
I_Option<?> getOption(E_OptionType type);
}
Code:
public interface I_Option<T> {
}
Meine Frage ist jetzt, wie kann ich die verschiedenen Programm-Optionen verwalten, ohne festzulegen, welchem Datentyp sie entsprechen?
Wie kann ich konkrekt in obigem Beispiel das Casten vermeiden?
Ich hoffe es git eine elegante Lösung!
Freue mich auf Vorschläge!
mfg