タグ付けされた質問 「equals」

Javaのequalsメソッドを参照し、あるオブジェクトがこのオブジェクトと「等しい」かどうかを示します。

8
Javaのequals()メソッドのオーバーライド-機能しませんか?
equals()今日のメソッドで興味深い(そして非常にイライラする)問題に遭遇したため、十分にテストされたクラスであると考えていたクラスがクラッシュし、追跡に非常に長い時間がかかるバグが発生しました。 完全を期すために、私はIDEやデバッガーを使用していませんでした。古き良き昔ながらのテキストエディターとSystem.outを使用しています。時間は非常に限られており、学校のプロジェクトでした。 とにかく- 私は含めることができ、基本的なショッピングカート開発していたArrayListのBookオブジェクトを。実現するためにはaddBook()、removeBook()、およびhasBook()カートの方法を、私はかどうかを確認したかっBook既に存在していましたCart。だから私は行く- public boolean equals(Book b) { ... // More code here - null checks if (b.getID() == this.getID()) return true; else return false; } テストではすべて正常に動作します。6つのオブジェクトを作成し、データを入力します。で多くの追加、削除、has()操作を実行するCartと、すべてが正常に動作します。私はあなたが持ってequals(TYPE var)equals(Object o) { (CAST) var }いることができるか、しかしそれが働いていたのでそれはあまり問題ではなかったと仮定して読んだと読んだ。 それから私はこの問題に遭遇した-私が作成するために必要Bookでオブジェクトを唯一ID Bookクラス内からインチ 他のデータは入力されません。基本的には次のとおりです。 public boolean hasBook(int i) { Book b = new Book(i); return hasBook(b); } …
150 java  equals  overriding 

21
compareTo()とequals()の比較
StringJavaのの等価性をテストするときは、equals()これが最も自然な方法のように思えるため、常に使用しました。結局のところ、その名前はすでに意図されていることを示しています。しかし、私の同僚は最近、のcompareTo() == 0代わりに使用するように教えられたと私に言ったequals()。これは不自然に感じられ(compareTo()順序付けを提供し、同等性を比較しないことを意味します)、多少危険compareTo() == 0でもあります(すべての場合において同等であることを意味するわけではないため、必ずしもそうであるとは限りませんString)。 彼はfor のcompareTo()代わりに使用するように教えられた理由を知りませんでした。また、理由もわかりませんでした。これは本当に個人的な好みの問題ですか、それともどちらの方法にも本当の理由がありますか?equals()String
118 java  string  equals  compareto 

9
Javaでequalsメソッドをオーバーライドする方法
Javaでequalsメソッドをオーバーライドしようとしています。私はPeople基本的に2つのデータフィールドnameとを持つクラスを持っていますage。次に、equalsメソッドをオーバーライドして、2つのPeopleオブジェクト間を確認できるようにします。 私のコードは次のとおりです public boolean equals(People other){ boolean result; if((other == null) || (getClass() != other.getClass())){ result = false; } // end if else{ People otherPeople = (People)other; result = name.equals(other.name) && age.equals(other.age); } // end else return result; } // end equals しかし、私が書くときage.equals(other.age)、equalsメソッドはStringのみを比較でき、年齢はIntegerであるため、エラーが発生します。 解決 ==提案されたように演算子を使用して、私の問題は解決しました。
108 java  overriding  equals 

6
デフォルトの.equalsと.hashCodeはクラスでどのように機能しますか?
自分のクラスがあるとしましょう public class MyObj { /* ... */ } いくつかの属性とメソッドがあります。これは、equalsを実装せず、hashCodeを実装しません。 equalsとhashCodeを呼び出したら、デフォルトの実装は何ですか?オブジェクトクラスから?そして、彼らは何ですか?デフォルトのequalsはどのように機能しますか?デフォルトのhashCodeはどのように機能し、何が返されますか?==それらが同じオブジェクトを参照しているかどうかをチェックするだけなので簡単ですが、equals()メソッドとhashCode()メソッドはどうですか?

8
JPAとHibernateを使用する場合、どのように等号とハッシュコードを実装すべきか
モデルクラスのイコールとハッシュコードをHibernateに実装するにはどうすればよいですか?一般的な落とし穴は何ですか?ほとんどの場合、デフォルトの実装で十分ですか?ビジネスキーを使う意味はありますか? 遅延フェッチ、ID生成、プロキシなどを考慮に入れると、あらゆる状況で正しく機能させるのはかなり難しいようです。
103 java  hibernate  orm  equals  hashcode 



3
JavaScriptで「true」== trueがfalseを表示するのはなぜですか?
MDCは、==オペレーターを次のように説明しています。 2つのオペランドが同じタイプでない場合、JavaScriptはオペランドを変換してから、厳密な比較を適用します。いずれかのオペランドが数値またはブール値の場合、可能であれば、オペランドは数値に変換されます。それ以外の場合、いずれかのオペランドが文字列の場合、可能であれば、もう一方のオペランドが文字列に変換されます。 これを念頭に置いて、私は"true" == true次のように評価します。 それらは同じタイプですか?番号 オペランドは数値ですか、それともブール値ですか?はい 両方を数値に変換できますか?いいえ(isNaN(Number("true")) // true) どちらのオペランドも文字列ですか?はい 他のオペランドを文字列に変換できますか?はい(String(true) === "true" // true) 文字列"true"と"true"、に評価されるはずですtrueが、JavaScriptはfalseを示しています。 私は何を逃しましたか?

15
2つのオブジェクトを.equals()および==演算子で比較します
1つのStringフィールドでクラスを作成しました。次に、2つのオブジェクトを作成し、==演算子.equals()も使用してそれらを比較する必要があります。これが私がしたことです: public class MyClass { String a; public MyClass(String ab) { a = ab; } public boolean equals(Object object2) { if(a == object2) { return true; } else return false; } public boolean equals2(Object object2) { if(a.equals(object2)) { return true; } else return false; } public static void main(String[] args) …
84 java  class  object  methods  equals 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.