問題タブ [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.
c# - == の動作をインターフェイス参照に対して定義できますか?
インターフェイスが IEquatable を継承する場合、実装クラスは Equals メソッドの動作を定義できます。== 操作の動作を定義することは可能ですか?
値を比較して、2 つの IFoo 参照が等しいことを確認するには、次のようにします。
if (X == Y)
Foo で Equals メソッドを使用することは可能ですか?
java - URL.equals が Java でインターネットにアクセスする必要があることを回避するにはどうすればよいですか?
Java クラス ライブラリの URL クラスのequals()
メソッドは、DNS 要求を作成してホスト名の IP を取得し、2 つの IP が等しいかどうかを確認します。これは、同じ から作成された URL でも発生しますString
。このインターネット アクセスを回避する方法はありますか?
vb.net - 等値演算子ではなく、なぜ Type.Equals(t1, t2) なのですか?
Type.Equals(t1, t2)
等値演算子ではなく、同等の型を決定するために使用する必要があるのはなぜですか(例: VB.NET の場合t1 = t2
)。
.NET API の他の部分と矛盾しているようです。
VB.NET での例:
If GetType(String) = GetType(String) Then
Debug.Print("The same, of course")
End If
Operator '=' is not defined for types 'System.Type' and 'System.Type'.
" "のコンパイル時エラーが発生します
c# - 同じであるが制約されていないジェネリック型の 2 つの要素を等しいかどうか比較する方法は?
重複の可能性:
演算子 == を C# のジェネリック型に適用できませんか?
私は次の汎用クラスを持っていますが、コンパイラは " Operator '!=' cannot be applied to operands of type 'TValue' and 'TValue'
" ( CS0019を参照) と不平を言います:
に制約TValue
するとclass
、 を使用できますObject.Equals()
。構造体とクラスの両方にこれが必要なので、それを避けることができればとてもうれしいです。
問題は、同じであるが制約のないジェネリック型の 2 つの要素が等しいかどうかを比較するにはどうすればよいかということです。
jsp - JSP で equals() メソッドを使用するにはどうすればよいですか?
私の JSP では、equals()
メソッドを使用して 2 つのオブジェクトをテストする必要があります。EL、JSTL、または別のタグライブラリを使用してこれを行う方法はありますか? チームのルールにより、スクリプトレットの使用は許可されていません。
JSTL<c:if>
タグを使ってみたのですが、==
演算子しか使っていないようです。
java - 2 つのオブジェクトが等しいかどうかを比較する代替手段は何ですか?
http://leepoint.net/notes-java/data/expressions/22compareobjects.html
equals() の定義は簡単ではないことがわかりました。実際、特にサブクラスの場合、それを正しく行うのはやや困難です。この問題の最良の扱いは、Horstmann の Core Java Vol 1 にあります。
equals() を常にオーバーライドする必要がある場合、オブジェクト比較を行う必要に追い込まれないようにするための適切なアプローチは何ですか? 良い「デザイン」の代替案は何ですか?
編集:
これが私が意図した方法で出くわすかどうかはわかりません。おそらく、質問は「なぜ 2 つのオブジェクトを比較したいのか?」に沿ったものであるべきです。その質問に対するあなたの答えに基づいて、比較するための代替ソリューションはありますか? つまり、equals の別の実装です。つまり、平等をまったく使用していません。重要なポイントは、その質問から始めることだと思います。なぜ 2 つのオブジェクトを比較したいのでしょうか。
java - Findbugsの警告:Equalsメソッドは引数のタイプについて何も想定してはいけません
プロジェクトでFindBugsを実行すると、上記のエラーがいくつか発生しました。
つまり、equalsのオーバーライドバージョンは、RHSオブジェクトをオーバーライドバージョンが定義されているオブジェクトと同じタイプにキャストします。
ただし、AFAIK Javaではメソッドパラメーターの分散が許可されていないため、より良い設計が可能かどうかはわかりません。そのため、equalsパラメーターに他のタイプを定義することはできません。
私は何か非常に間違ったことをしていますか、それともFindBugsは熱心すぎますか?
この質問を表現する別の方法は次のとおりです。equalsに渡されたオブジェクトがLHSと同じタイプでない場合の正しい動作は何ですか:これはfalseですか、それとも例外があるべきですか?
例えば:
java - Webservice Stub で生成された equals
バックエンドから生成されたすべての webservice-stubs には、次のような equals-method があります。
誰かが私にその目的を説明してもらえ__equalsCalc
ますか? 私はそれを理解していません。クラスの他の場所では使用されません。私の見方では、「平等」の計算中に正確にはnullではありません。ただし、equals は宣言されてsynchronized
います。したがって、常に 1 つのスレッドしか存在できません。私にはわかりませんif (__equalsCalc != null)
。
私の愚かな誤解を教えてください;-)
編集:私はプロジェクトに不慣れなので、私の答えは間違っているかもしれません。しかし、正しくトレースすると、メソッドは axis-wsdl2java によって生成されます
c# - InternalEquals(object objA、object objB)の実装はどこにありますか
Reflectorを使用して.Netソースコードを分解しているときに、オブジェクトクラスのEquals実装に出くわしました。これは、
これもまた
この関数の実装をどこで見つけるか、このInternalEquals(object objA, object objB)
関数をどのように使用するか、どの.Netアセンブリでこの関数が定義されているか、また、すべてが.Netソースコード用にゼロから記述されている場合は、なぜですか?この関数の実装が見つかりません。
java - hashCode() が equals() と一致していることを確認するには?
java.lang.Object の equals() 関数をオーバーライドする場合、javadoc は次のように提案しています。
通常、このメソッドがオーバーライドされるときは常に、hashCode メソッドをオーバーライドする必要があります。これは、等しいオブジェクトには等しいハッシュ コードが必要であるという、hashCode メソッドの一般的な規約を維持するためです。
hashCode() メソッドは、オブジェクトごとに一意の整数を返す必要があります (これは、メモリ位置に基づいてオブジェクトを比較する場合に簡単に実行できます。オブジェクトの一意の整数アドレスを返すだけです)。
各オブジェクトのプロパティのみに基づいて一意の整数を返すには、hashCode() メソッドをどのようにオーバーライドする必要がありますか?