シナリオは次のとおりです。型への型の変数「オブジェクト」にキャスティング「クラス」
Object anObj="7";
Object anotherObject="7.77";
Class aClass=Class.forName("java.lang.Integer");
Class anotherClass=Class.forName("java.lang.Double");
私はanObj
aClass
の型とanotherObject
anotherClass
に型を型キャストします。
aClass
と
anotherClass
の値は変更になる場合があります
ので、私は彼らがparseXXX()
メソッドを使用してキャストしたいいけない...
私はaClass.cast(anObj);
を使用してみましたが、誰も私を助けることができるそれがInstantiationException
を投げますか?
ありがとうございます。 ArK!
オブジェクトが文字列であるため、これらの型キャストが失敗するにanObjとanotherObjectをキャストする必要があります - あなたがすることはできません*キャスト*に文字列 ' 「整数」または「ダブル」である。だからこそ、キャストは失敗する。あなたはキャストの観点から考えることをやめ、文字列変換を実行するコンストラクタやメソッドを呼び出すという観点から考える必要があります。 –
Jonが正しいです。 Objectが実際にIntegerであるが、なんらかの理由でObject変数にある場合は、(ObjectからIntegerのように)ダウンキャストできます。 – Tom
uジョンとトムに感謝... – arunrathnakumar