Ich möchte Java-Reflektion verwenden, um den zurückgegebenen Wert einer Methode in eine double zu konvertieren, unabhängig davon, ob der tatsächliche Rückgabetyp eine Zahl oder eine primitive int, long, float, double usw.Java-Reflexion. Konvertieren zurückgegebenen Wert zu double
istum sicherzustellen, dass das Verfahren einen Wert tatsächlich zurückkehrt, die ich in einen doppelten umwandeln kann, ich
List<String> numberTypes = Arrays.asList("int", "Integer", "double", "Double", "long", "Long", "float", "Float");
if (numberTypes.contains(method.getReturnType().getSimpleName())){
Double a = new Double(method.invoke(obj));
}
Aber Eklipse sagt mir, hier bin mit, dass er will, dass ich die Ausgabe von invoke
zu einem Double
Fall. Im Grunde will es mir dies ... mir
if (numberTypes.contains(method.getReturnType().getSimpleName())){
Double a = new Double((Double) method.invoke(obj));
}
Aber das scheint zu tun, wie ich da einen Fehler eingeführt werden könnte, wenn das Objekt tatsächlich eine primitive int (zum Beispiel), dann scheint es mir, wie die Besetzung wäre falsch. Also die offenen Fragen:
1) Sollte ich einfach den Cast einfügen?
2) Gibt es eine bessere Möglichkeit, den Rückgabewert in ein Double zu konvertieren?
3) Wenn das ultimative Ziel darin besteht, das Double in einen String zu konvertieren, gibt es eine Abkürzung, die ich hier nehmen kann? Zum Beispiel könnte es sich herausstellen, dass wir letztlich nur den Wert als String über das Netzwerk senden müssen. Gibt es einen besseren Weg, das Obige zu erreichen, wenn das das ultimative Ziel ist?