これはおそらく以前に尋ねられましたが、クイック検索はC#の質問と同じです。 See here.オブジェクトがインターフェイスを実装しているかどうかをテストします
私が基本的にしたいのは、与えられたオブジェクトが特定のインターフェースを実装しているかどうかをチェックすることです。
私はある種の解決策を見つけましたが、これはif文またはcase文で頻繁に使用するのに十分快適ではなく、Javaには組み込みの解決策がないのだろうと思いました。
public static Boolean implementsInterface(Object object, Class interf){
for (Class c : object.getClass().getInterfaces()) {
if (c.equals(interf)) {
return true;
}
}
return false;
}
EDIT:[OK]を、あなたの答えに感謝。特にDamien PolletとNoldorinには、私のデザインを再考させて、もうインターフェースをテストしないようにしました。
を呼び出す前に!nullであるかどうかを確認(またはをチェックJavaがC#as "演算子に類似したものを持っていれば、結果はnullです)?私はJavaのコードではなくC#のコーダーなので、主にここで推測していますが、どのようなオブジェクト指向言語でもこのようなアプローチが可能だと思います。 – Noldorin
yay!あなたは歓迎です:) –
このケースでは、投球の例外は、あなたがパフォーマンスを気にする必要がない場合にのみ有効です。 – Rafa