2011-01-02 10 views
3

ライブラリ内のメソッドを使用してオブジェクトを返しますが、実際にはオブジェクトの配列です。そして、私はその価値が必要なところにこだわっています。誰もこのようなコンバージョンを求めていないのは奇妙です。オブジェクトをオブジェクトに変換する

+5

。 –

+4

うん、私は今質問を何度も読んだことがあり、それを読んだり、混乱したりしています。 –

+1

コンテキストなしでは、とにかく... – kem

答えて

7
Object[] objects = new Object[] {1,"fde", 5L}; 
    Object casted = objects; 
    Object[] recovered = (Object[]) casted; 
2
Object o = ... 
Object[] array = { o }; 
+1

ええと...私はそれが逆だったと思いました。 – Rekin

+0

これまでのところこれはうまくいきません。 – Khoi

+0

@Khoi、あなたはこれについて少し詳しく説明できますか?*動作していませんか? –

1

あなたはこのようにそれをキャストシムプレーすることができます:それは返すために最も一般的なものだから

Object[] arrayOfObjects = (Object[]) yourMethod(); 
2

多くのAPIは、オブジェクトを返します。これは通常、多くの異なるタイプを格納できる一般的なコンテナの場合です。 getterスタイルのメソッドは、より具体的なものを返すことができません。

明示的な「変換」の必要はありません。ちょうどそれをキャストし、あなたは完了です。

Object object = MyApi.getFoo(); 
Object[] theRealThing = (Object[]) object; 

それとも、キャストは仕事に行くされていることを確認したい場合:

それは意味をなさないためです
Object object = MyApi.getFoo(); 
if (object instanceof Object[]) { 
    Object[] theRealThing = (Object[]) object; 
} else { 
    System.out.println("The impossible has happened!"); // or something like that 
} 
関連する問題