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

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

30
2つのJavaScriptオブジェクトの等価性を判断する方法は?
厳密な等価演算子は、2つのオブジェクトタイプが等しいかどうかを通知します。しかし、Javaのハッシュコード値のように、 2つのオブジェクトが等しいかどうかを確認する方法はありますか? スタックオーバーフローの質問JavaScriptには、何らかのhashCode関数がありますか?この質問に似ていますが、より学術的な答えが必要です。上記のシナリオは、なぜそれが必要なのかを示しており、同等の解決策があるかどうか疑問に思っています。


17
==とEquals()のC#の違い
Silverlightアプリケーションに2つの文字列を比較する条件があります。何らかの理由で、それを使用する==とfalseが.Equals()返され、trueが返されます。 これがコードです: if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack")) { // Execute code } if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack") { // Execute code } これがなぜ起こっているのかについて何か理由がありますか?
548 c#  .net  equals 

4
完璧なJPAエンティティを作成する[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 私はしばらくの間JPA(実装Hibernate)を使用しており、エンティティを作成する必要があるたびに、AccessType、不変のプロパティ、equals / hashCodeなどの問題に悩まされています。 そこで、私は各問題の一般的なベストプラクティスを見つけ出して、個人用に書き留めることにしました。 しかし、誰かがそれについてコメントしたり、どこが間違っているかを教えたりしても構わないと思います。 エンティティークラス Serializableを実装する 理由:仕様では、そうする必要があると記載されていますが、一部のJPAプロバイダーはこれを強制していません。JPAプロバイダーとしてのHibernateはこれを強制しませんが、Serializableが実装されていない場合は、ClassCastExceptionで胃のどこかで失敗する可能性があります。 コンストラクタ エンティティのすべての必須フィールドを持つコンストラクタを作成します 理由:コンストラクターは、作成されたインスタンスを常に正常な状態にしておく必要があります。 このコンストラクターのほかに、パッケージのプライベートデフォルトコンストラクターがある 理由:Hibernateでエンティティを初期化するには、デフォルトのコンストラクターが必要です。プライベートは許可されますが、ランタイムプロキシの生成とバイトコードインスツルメンテーションなしの効率的なデータ取得には、パッケージプライベート(またはパブリック)の可視性が必要です。 フィールド/プロパティ 一般的にフィールドアクセスを使用し、必要に応じてプロパティアクセスを使用する 理由:どちらか一方について明確で説得力のある引数がないため、これはおそらく最も議論の余地のある問題です(プロパティアクセスとフィールドアクセス)。ただし、フィールドアクセスは、より明確なコード、より良いカプセル化、および不変フィールドのセッターを作成する必要がないため、一般的に好まれているようです 不変フィールドのセッターを省略(アクセスタイプフィールドには不要) プロパティはプライベートである可能性があります 理由:以前は(Hibernate)パフォーマンスの方がprotectedの方が優れていると聞きましたが、Webで見つけることができるのは:Hibernateがpublic、private、protectedのアクセサーメソッド、およびpublic、private、protectedフィールドに直接アクセスできることです。選択はあなた次第であり、アプリケーション設計に合うようにそれを一致させることができます。 Equals / hashCode エンティティを永続化するときにのみこのIDが設定されている場合は、生成されたIDを使用しないでください 優先度:不変の値を使用して一意のビジネスキーを形成し、これを使用して同等性をテストする 一意のビジネスキーを使用できない場合は、エンティティの初期化時に作成される非一時的なUUIDを使用します。詳細については、この素晴らしい記事を参照してください。 関連するエンティティ(ManyToOne)を参照しないでください。このエンティティ(親エンティティなど)をビジネスキーの一部にする必要がある場合は、IDのみを比較します。プロパティアクセスタイプを使用している限り、プロキシでgetId()を呼び出してもエンティティの読み込みはトリガーされません。 エンティティの例 @Entity @Table(name = "ROOM") public class Room implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue @Column(name …
422 java  hibernate  jpa  equals 

29
JavaでequalsメソッドとhashCodeメソッドをオーバーライドする必要があるのはなぜですか?
最近、このDeveloper Worksドキュメントを読みました 。 このドキュメントはすべてhashCode()、equals()効果的かつ正確に定義することを目的としていますが、これら2つのメソッドをオーバーライドする必要がある理由を理解できません。 これらの方法を効率的に実装するための決定をするにはどうすればよいですか?
383 java  equals  hashcode 

23
セットから要素を取得する
Set別の要素と等しい要素を取得する操作を提供しないのはなぜですか? Set<Foo> set = ...; ... Foo foo = new Foo(1, 2, 3); Foo bar = set.get(foo); // get the Foo element from the Set that equals foo にSetと等しい要素が含まれているかどうかを確認できますが、barなぜその要素を取得できないのですか?:( 明確にするために、equalsメソッドはオーバーライドされていますが、すべてではなく、フィールドの1つだけをチェックしています。したがって、Foo等しいと見なされる2つのオブジェクトは実際には異なる値を持つ可能性があるため、を使用することはできませんfoo。
323 java  collections  set  equals 



4
IEquatableとObject.Equals()をオーバーライドするだけの違いは何ですか?
Foodクラスがの別のインスタンスと等しい場合はいつでもテストできるようにしたいFood。後でリストに対して使用し、そのList.Contains()メソッドを使用したいと思います。実装するIEquatable<Food>か、単にオーバーライドする必要がありますObject.Equals()か?MSDNから: このメソッドは、T(リスト内の値のタイプ)に対するIEquatable.Equalsメソッドのオブジェクトの実装によって定義されているデフォルトの等値比較子を使用して、等値を決定します。 だから私の次の質問は:.NETフレームワークのどの関数/クラスが利用するのObject.Equals()ですか?そもそも使った方がいいですか?
185 c#  .net  equals  equality  iequatable 

11
.equals()を生成するときにinstanceofよりgetClass()を優先する理由はありますか?
私は生成するEclipseを使用している.equals()と.hashCode()し、「タイプを比較するために使用『のinstanceof』」ラベルされたオプションがあります。デフォルトでは、このオプションはオフになっており、.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)」チェックを外します。(nullオブジェクトは常に失敗するため、冗長instanceofです。)悪い考えである理由はありますか?

27
文字列がnullに等しいかどうかを確認するにはどうすればよいですか?
文字列に意味のある値がある場合にのみ、何らかのアクションを実行したい。だから、これを試しました。 if (!myString.equals("")) { doSomething } この if (!myString.equals(null)) { doSomething } この if ( (!myString.equals("")) && (!myString.equals(null))) { doSomething } この if ( (!myString.equals("")) && (myString!=null)) { doSomething } この if ( myString.length()>0) { doSomething } そして、すべての場合において、doSomething私のストリングが空であるという事実にもかかわらず、私のプログラムは。と等しいnull。それで、それで何が悪いのですか? 追加: 問題の理由を見つけました。変数が文字列として宣言され、その結果、nullこの変数に割り当てられたものが"null"!つまり、if (!myString.equals("null"))動作します。

4
BigDecimal equals()とcompareTo()
簡単なテストクラスを考えてみましょう: import java.math.BigDecimal; /** * @author The Elite Gentleman * */ public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BigDecimal x = new BigDecimal("1"); BigDecimal y = new BigDecimal("1.00"); System.out.println(x.equals(y)); System.out.println(x.compareTo(y) == 0 ? "true": "false"); } } …

8
Apache Commons equals / hashCodeビルダー[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する 私はここの人々が使用して何を考え、知って興味 org.apache.commons.lang.builder EqualsBuilder/をHashCodeBuilder 実装するためのequals/をhashCode?自分で書くよりも良い習慣でしょうか?Hibernateでうまく機能しますか?あなたの意見は何ですか?


20
nullと空( "")のJava文字列の違い
違いは何であるnullと""(空の文字列)は? 私はいくつかの簡単なコードを書きました: String a = ""; String b = null; System.out.println(a == b); // false System.out.println(a.equals(b)); // false どちらのステートメントも戻りfalseます。どうやら実際の違いは分からないようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.