Wie erstelle ich eine Instanz des unbekannten Typs?
Ich habe ein paar Funktionen, die einen genauen Argumenttyp erfordern (akaT
):
private <T> void doWork1(T _obj) {...}
private <T> void doWork2(T _obj) {...}
private <T> void doWork3(T _obj) {...}
Ich benutze sie so und es funktioniert gut:
public void parse(int id) {
switch (id) {
case 1: {
Integer obj = new Integer(1);
doWork1(obj);
doWork2(obj);
doWork3(obj);
break;
}
case 2: {
Double obj = new Double(2);
doWork1(obj);
doWork2(obj);
doWork3(obj);
break;
}
case 3: {
CustomClass obj = new CustomClass();
doWork1(obj);
doWork2(obj);
doWork3(obj);
break;
}
}
}
Aber ich habe mich gefragt, ob es möglich ist, den Code präziser zu gestalten, d. H.
public void parse(int id) {
UnknownType obj;
switch (id) {
case 1: {
obj = new Integer(1);
break;
}
case 2: {
obj = new Double(2);
break;
}
case 3: {
obj = new CustomClass();
break;
}
}
doWork1(obj);
doWork2(obj);
doWork3(obj);
}
Wenn ja, was soll ich anstelle von @ setzUnknownType
?
Bearbeiten
1) Ich habe @ benutInteger
undDouble
als vereinfachtes Beispiel. In meinem aktuellen Code verwende ich benutzerdefinierte Klassen.
2) Ich muss den genauen Typ (Klasse) in meinem @ kenndoWork
funktioniert also kann ich nicht @ verwendObject
Danke im Vorau