2012-03-15 6 views
0

オブジェクトを関連するEObjectにキャストする必要があります。私がそれをしようとすると、私はClassCastExceptionを取得します。私の質問は、オブジェクトをEObjectにキャストすることが可能であり、可能であれば、それをどのように行うことができるかということです。ObjectをEMF EObjectにキャストしようとするとClassCastExceptionが発生しますか?

ありがとうございます。

+0

http://stackoverflow.com/questions/2986951/can-you-cast-an-object-to-one-that-implements-an-interface-java –

+0

[[誰かが "ClassCastException"を説明できるかどうかJava?](http://stackoverflow.com/questions/907360/can-someone-explain-classcastexception-in-java)(鋳造からのすべてのClassCastExceptionsは同じ原因によるものです) –

答えて

1

EObjectsは、の対応するオブジェクトを表すインターフェイスですが、は同じタイプのではありません。あなたはキャストできません。そして本当に、あなたはしたくないです。 EObjectsとその子孫は実際のプログラムではなく、モデルを記述していました。

+0

これらは実装者と同じ型です。たとえば、ArrayListはListであり、Collectionでもあり、絶対にキャストできます。これは、正解とマークするべきではありません。 – Robin

+0

@Robin、EObjectsはEclipseのEMFフレームワークの一部です(http://download.eclipse.org/modeling/emf/emf/javadoc/2.4.3/org/eclipse/emf/ecore/EObject.html)。あなたの例は、絶対に彼らとは何の関係もなく、どこにもないはずの混乱につながります。 – Jochen

+0

私は訂正しました。私は約5年間でEMFを見ていないし、その観点から問題については考えなかった。私たちは実際にはどちらも正しいですが、私とは違って、OPが持っていたEMFの混乱については言及しませんでした。 downvoteの私の謝罪。 – Robin

2

この例外が発生した場合、そのインスタンスはEObjectではありません。実際にはそうではないときに、それがEOjbectであると言うことを意味しています。

キャスティングは変換プロセスではありません。あなたのオブジェクトをEObjectに「作る」ことはありません。単にそれを1つのものとして明らかにします。

あなたの例外は、あなたがEObjectにキャストしようとしているオブジェクト(あなたの質問に含める必要があるもの、btw)を実際に教えてくれます。

関連する問題