[解決済み】Javaの「instanceof」の使い方【重複あり
2022-03-28 23:41:46
質問
私は、Javaには
instanceof
演算子です。この演算子が使われる場所とその利点を詳しく教えてください。
どのように解決するのですか?
基本的には、あるオブジェクトが特定のクラスのインスタンスであるかどうかをチェックします。 通常、スーパークラスやインターフェイスの型を持つオブジェクトへの参照やパラメータがあり、実際のオブジェクトが他の型(通常はより具体的な型)を持っているかどうかを知る必要があるときに使用します。
例
public void doSomething(Number param) {
if( param instanceof Double) {
System.out.println("param is a Double");
}
else if( param instanceof Integer) {
System.out.println("param is an Integer");
}
if( param instanceof Comparable) {
//subclasses of Number like Double etc. implement Comparable
//other subclasses might not -> you could pass Number instances that don't implement that interface
System.out.println("param is comparable");
}
}
もし、この演算子を頻繁に使わなければならないのであれば、それは一般的に設計に何らかの欠陥があることを示唆するものであることに注意してください。ですから、よく設計されたアプリケーションでは、その演算子をできるだけ使わないようにしなければなりません(もちろん、その一般的なルールに例外はあります)。
関連
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み] instanceofとClass.isAssignableFrom(...)の違いは何ですか?