[解決済み] オブジェクトがインターフェースを実装しているかどうかのテスト
2022-04-26 16:41:01
質問
これはおそらく以前にも質問されたことがあると思いますが、軽く検索してみたところ、C#について質問されたのと同じ質問しか出てきませんでした。 こちらをご覧ください。
私が基本的にやりたいことは、与えられたオブジェクトが与えられたインターフェイスを実装しているかどうかをチェックすることです。
私は一種の解決策を考え出したが、これは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には、私の設計を再考させられたので、もうインターフェイスのテストはしないことにしました。
どのように解決するのですか?
その
instanceof
演算子は
NullPointerException
安全な方法で 例えば
if ("" instanceof java.io.Serializable) {
// it's true
}
は真をもたらします。以来。
if (null instanceof AnyType) {
// never reached
}
が false になる場合
instanceof
演算子はヌルでも安全です(投稿されたコードはそうではありません)。
インスタンスオブ は、ビルトインで、コンパイル時に安全な クラス#isInstance(Object)
関連
-
IllegalArgumentException この例外を解決する方法
-
javaの実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] Javaでオブジェクトをコピーするにはどうしたらいいですか?
-
[解決済み] Mapを実装し、挿入順序を保持するJavaクラス?
-
[解決済み】インプリメントとエクステンド。いつ使う?その違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
javaで非静的な解を静的な参照にすることができない
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
[解決済み] オブジェクトがインターフェースを実装しているかどうかのテスト