[解決済み] .equals()を生成する際にinstanceofよりもgetClass()を優先する理由はありますか?
2022-04-14 03:29:36
質問
Eclipseを使って
.equals()
と
.hashCode()
というオプションがあり、quot;Use 'instanceof' to compare types"というラベルが付けられています。 デフォルトでは、このオプションはチェックされておらず、このオプションは
.getClass()
を使用して型を比較します。 を選択すべき理由はありますか?
.getClass()
よりも
instanceof
?
を使用しない場合
instanceof
:
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
使用方法
instanceof
:
if (obj == null)
return false;
if (!(obj instanceof MyClass))
return false;
通常、私は
instanceof
を削除してください。
if (obj == null)
"をチェックします。(ヌルオブジェクトは常に失敗するので、これは冗長です
instanceof
.) それが悪いという理由はあるのでしょうか?
どのように解決するのですか?
もし
instanceof
を作成すると
equals
実装
final
はメソッドの対称性契約を維持することになります。
x.equals(y) == y.equals(x)
. もし
final
が制限されているように見える場合は、オブジェクトの等価性の概念を慎重に検討し、オーバーライドする実装が
Object
クラスがあります。
関連
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
[解決済み] instanceof Vs getClass( )
-
final, finally, finalizeの違いについて話してください。
-
javaの模造品QQ WeChatのチャットルーム
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでequalsとhashCodeをオーバーライドする際に考慮すべき事項は?
-
[解決済み] typeofとinstanceofの違いは何ですか、また、どのような場合にどちらを使うべきですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
[解決済み] instanceof Vs getClass( )
-
Javaクラスローダーにソースコードから潜り込む
-
サーブレットクラスのインスタンス化エラーの解決法
-
エラーの解決方法 jarfile XXX.jarにアクセスできません。
-
javaでクラスを作成すると、enclosing classでないように見える
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
org.glassfish.jersey.servlet.ServletContainer
-
[解決済み] JavaでequalsとhashCodeをオーバーライドする際に考慮すべき事項は?
-
[解決済み】switch文の中でinstanceof演算子を使用することは可能ですか?