問題タブ [equals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java で equals() を正しく同期する
1 つのフィールドのみを含む次のクラスがありますi
。このフィールドへのアクセスは、オブジェクト ("this") のロックによって保護されています。equals() を実装するときは、このインスタンス (a) と他のインスタンス (b) をロックする必要があります。スレッド 1 が a.equals(b) を呼び出し、同時にスレッド 2 が b.equals(a) を呼び出すと、2 つの実装でロックの順序が逆になり、デッドロックが発生する可能性があります。
同期されたフィールドを持つクラスに equals() を実装するにはどうすればよいですか?
java - JPAとHibernateを使用する場合、equalsとハッシュコードをどのように実装する必要がありますか
モデルクラスのequalsとハッシュコードをHibernateでどのように実装する必要がありますか?よくある落とし穴は何ですか?ほとんどの場合、デフォルトの実装で十分ですか?ビジネスキーを使用する意味はありますか?
遅延フェッチ、ID生成、プロキシなどを考慮に入れると、あらゆる状況で正しく機能させるのはかなり難しいように思われます。
java - Google App Engine、JDO、equals/hashCode
Google App Engine で正常に動作するアプリを入手しました。equals と hashCode を実装するのを忘れていた JDO 拡張オブジェクトの 1 つに気付きました (オブジェクトをセットで使用する必要があります)。だから私はしました。これらの実装で特別なことは何もしていません。実際、Eclipse を使用してそれらを生成しただけです。そのようです:
そのため、アプリで任意の URL にアクセスしようとすると、次の例外がスローされます。
/addUser javax.jdo.JDOUserException: Persistent class "クラス com.bpapa.myapp.domain.User は拡張されていないようです。エンハンサーを再実行して、出力のエラーを確認してください。" データベースにテーブルがありませんが、操作にはテーブルが必要です。このクラスの MetaData の仕様を確認してください。org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:427) で org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:249) で com.bpapa.myapp.servlet.AddUserServlet.doPost(AddUserServlet.java) :34)
私が間違ったことについてのアイデアはありますか?
java - 「.equals」と「==」の違いは何ですか?
私は今日講師を変えました、そして彼は私に奇妙なコードを使っていると言いました. (使っ.equals
たほうがいいと言ってくれて、その理由を聞くと「だから!」とのことでした)
次に例を示します。
私が慣れているものの代わりに:
2つの違いは何ですか。そして、なぜ彼の方法 (を使用.equals
) が優れているのでしょうか?
クイック検索でこれを見つけましたが、その答えを本当に理解できません:
c# - Dictionary.Equals() には実装がありますか?
別の辞書 (IDictionary として入力された変数) と比較している辞書があります。d1.Equals(d2) を実行すると false が返されます。以下に独自のコードを記述すると、true が返されます。どちらもSystem.Collections.Generic.Dictionary
です。キー/値を比較する実装がありませDictionary
んか?Equals
c# - Double と Int を比較する最良の方法は何ですか?
C# の次のコードは機能しません。
では、質問: Double と Int を比較する最良の方法は何ですか?
c# - これは、等式および等式/不等式演算子を実装するための優れた/効率的なイディオムですか?
これを正しく行うのにいくつか問題があったので、これがカスタム不変クラスのEqualsメソッドと等式/不等式演算子を実装する効率的な方法であるかどうかについてフィードバックがあるかどうかを尋ねたいと思いました。これらの演算子は私のプログラムによって非常に頻繁に呼び出されるので、正しく取得できるようにしたいと思います。
c# - == よりも String.Equals を使用するのはなぜですか?
String.Equals()
私は最近、大規模なコードベースを紹介され、すべての文字列比較が代わりに使用されていることに気付きました==
その理由は何だと思いますか。
sql - SQL で等しくない
MYSQL で「等しくない」コマンドを実行する方法があるかどうか疑問に思っています。つまり、「SELECT * FROM someTitle WHERE someLabel != 'something'」のようなコマンドを実行できますか? これを試みると、コードがエラーを返します。
助けてくれてありがとう!
java - Java: 通知プロバイダーの実装と hashCode 駆動型マップの比較
ジェネリックリスナーの通知束用に抽象ジェネリックプロバイダーを実装しました。E
子孫はnotifyListener(E)
特定の通知コードでオーバーライドする必要があります。リスナーのバッキング リストには、 を選択しますWeakHashMap<K,V>
。リスナーは弱参照として保持する必要があります。
典型的な使用:
すべてがうまく機能しますが、AbstractList
リスナーとして子孫クラスが必要な場合、バッキングWeakHashMap
はリスナーインスタンスを 1 つしか受け入れません! 明らかです-メソッドhashCode()
とequals()
リスナーはすべてのインスタンス(空のリスト)に対して同じ値を返すため、WeakHashMap.put
以前に追加されたリスナーのみを置き換えます。
最善の解決策は何ですか?
別の非 hashCode バッキング コレクションを使用します -- しかし
WeakHashMap
、弱い参照を自動的に管理するので、私にとってはとても便利です。単純な実装の抽象クラスなど、非汎用リスナーを使用します
equals() { return (this == object); }
が、これはそれほど柔軟ではありませんaddListener(E)
単純な equals() を使用してリスナーにラッパーを使用します -- ただし、このラッパーは弱い参照のために呼び出し元に対して透過的ではありません
別のアイデア?