Java Reflectionを使用して、実際の戻り値の型がNumberか、long、float、doubleなどのいずれであるかにかかわらず、メソッドの戻り値をdoubleに変換したい。Javaのリフレクション。返された値をdoubleに変換する
方法は、実際に私は、二重に変換できる値を返していることを確認するために、私は
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));
}
を使用しています。しかしEclipseは、それはDouble
にinvoke
の出力をケースに私を望んでいることを、ここで私に語りました。基本的にそれは
if (numberTypes.contains(method.getReturnType().getSimpleName())){
Double a = new Double((Double) method.invoke(obj));
}
...私はこれをしたいしかし、オブジェクトが実際に(例えば)プリミティブint型であれば、それは次のように私には思えるので、私はエラーを導入することができように、それは私には思えますキャストは間違っています。オープン質問:
1)キャストを挿入するだけですか?
2)戻り値をDoubleに変換するより良い方法はありますか?
3)究極の目的は、Doubleを文字列に変換することです。私はここで取ることができるショートカットはありますか?たとえば、最終的に値をネットワーク経由でStringとして送信する必要があることが判明する可能性があります。それが究極の目標である場合、上記を達成するためのより良い方法はありますか?