2012-01-19 12 views
-1

私のオブジェクトの1つがXインターフェイスを実装していますが、 'instanceof'でチェックするとfalseを返すと言っています。どのようにスーパークラスまたはオブジェクトのインターフェイスであるかを判断する方法。スーパークラスまたはオブジェクトのインターフェイスを確認する方法

object.getSuperClassORInterface(); 
+2

'instanceof X'がfalseを返した場合、オブジェクトは' X'インタフェースを実装しません。 'null'は' instanceof'なので、常にfalseを返すことに注意してください。 'instanceof'があなたが期待することをしていない場合、何か間違っているので、コードを投稿してください。 –

+0

'instanceof'がfalseを返す場合、オブジェクトはそのインタフェースを実装していません**。つまり、そのインタフェースはオブジェクトの継承階層にはありません。 –

答えて

3

使用反射

使用例えばgetSuperClass()

:さらにスーパークラスがClassであるかどうかをあなたが見ることができる

yourObj.getClass().getSuperClass() 

私は、例えば

ような何かを探していますまたはInterface using isInterface()

+0

はいスーパークラスの名前を与えますが、インターフェースの名前が必要な場合はどうすればいいですか?gerInterfacesを使用しましたが、名前の代わりにアドレスだけを表示しましたfeature.getClass()。getInterfaces()。getClass()。getName ()でも動作しません\ –

+0

'getSimpleName'を使用 –

2

オブジェクトがnullの場合はtrueを返します。

+0

オブジェクトがnullではありません –

2

falseを返すnull参照変数にinstanceofを適用していることがあります。

関連する問題