問題タブ [instanceof]

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.

0 投票する
24 に答える
130933 参照

java - Java で instanceof を使用することによるパフォーマンスへの影響

私はアプリケーションに取り組んでおり、1 つの設計アプローチには、instanceofオペレーターを非常に頻繁に使用することが含まれます。オブジェクト指向設計では一般的に を使用しないように努めていることは知っていますinstanceofが、それは別の話であり、この質問は純粋にパフォーマンスに関連しています。パフォーマンスへの影響があるかどうか疑問に思っていましたか? と同じくらい速い==ですか?

たとえば、10 個のサブクラスを持つ基本クラスがあります。基本クラスを受け取る 1 つの関数で、そのクラスがサブクラスのインスタンスであるかどうかをチェックし、何らかのルーチンを実行します。

それを解決するために私が考えた他の方法の 1 つは、代わりに「type id」整数プリミティブを使用し、ビットマスクを使用してサブクラスのカテゴリを表し、サブクラス「type id」のビット マスク比較を行うことでした。カテゴリを表す定数マスク。

instanceofそれよりも高速になるようにJVMによって最適化されていますか? Java にこだわりたいのですが、アプリのパフォーマンスが重要です。以前にこの道を進んだことがある人がアドバイスをくれるとうれしいです。つまらないことをしすぎたり、最適化するのに間違ったことに焦点を合わせたりしていませんか?

0 投票する
10 に答える
117779 参照

javascript - 一部のリテラルでinstanceofがfalseを返すのはなぜですか?

配列リテラルとオブジェクトリテラルは一致します...

なぜそれらすべてをしないのですか?または、なぜそれらはすべてではないのですか?
そして、それらは何のインスタンスですか?

FF3、IE7、Opera、Chromeでも同じです。したがって、少なくとも一貫性があります。

0 投票する
5 に答える
76889 参照

c# - JavaのisInstance()に相当するC#は何ですか?

私はとについて知っていisますが、リフレクティブisInstance()メソッドはどうですか?asinstanceof

0 投票する
14 に答える
272479 参照

java - instanceof と Class.isAssignableFrom(...) の違いは何ですか?

次のうちどれが良いですか?

また

私が知っている唯一の違いは、「a」が null の場合、最初は false を返し、2 番目は例外をスローすることです。それ以外は、常に同じ結果になりますか?

0 投票する
5 に答える
180250 参照

java - Java の instanceof に相当する C++

Java の C++ に相当するものを実現するための推奨される方法は何instanceofですか?

0 投票する
10 に答える
1251922 参照

python - インスタンスのクラス名を取得しますか?

Python でオブジェクトのインスタンスを作成したクラスの名前を調べるには、これを実行している関数が、インスタンスのクラスが派生した基底クラスである場合、どうすればよいですか?

inspect モジュールがここで私を助けてくれたかもしれないと考えていましたが、私が望むものを与えてくれないようです。メンバーを解析する__class__までもなく、この情報を取得する方法がわかりません。

0 投票する
11 に答える
132651 参照

java - .equals() を生成するときに、instanceof よりも getClass() を優先する理由はありますか?

私は Eclipse を使用して と を生成.equals().hashCode()ています。「型を比較す​​るには 'instanceof' を使用する」というオプションがあります。デフォルトでは、このオプションはチェックされておらず、.getClass()型の比較に使用されます。私が好むべき理由はあります.getClass()instanceof

使用しない場合instanceof:

使用instanceof:

私は通常、instanceofオプションをチェックしてから、「if (obj == null)」チェックを外します。( null オブジェクトは常に失敗するため、冗長instanceofです。) それが悪い考えである理由はありますか?

0 投票する
6 に答える
8071 参照

java - instanceof は、インターフェイスを検出するための一貫性のない結果をもたらしますか?

私が知っておくべきトリッキーなことはありinstanceofますか?いくつかのメソッドを介してオブジェクトのリストを渡し、これらのオブジェクトが特定のインターフェイスを実装しているかどうかをinstanceof. 場合によっては、instanceofオブジェクトがインターフェイスを実装していると正しく識別しますが、そうでない場合もあります。同じオブジェクトの異なる場所で一貫性のない結果が得られているようです。ここで知っておくべきトリック/落とし穴はありますか?

あなたが持っているかもしれないコメントを見越して:

1)instanceofフォームが悪いことはわかっています。私は、変更できない完全ではないオブジェクト階層で作業しています。これは、私が考えることができる最も悪いことです。

2) コード例の作成に取り組んでいますが、ここに有用なものを貼り付けるには、コードを大幅に簡素化する必要があります。それまでの間、これを以前に見たことがあり、いくつかの光を当てることができる場合は、そうしてください.

0 投票する
4 に答える
355 参照

java - instanceOfなしでLayoutManagerを実装するにはどうすればよいですか?

私が取り組んでいる特定のレイアウトについては、自分で作成する必要がありLayoutManagerます。

タイプに応じて異なるコンポーネントをレイアウトしますLabel。1つの方法で、セパレーターを別の方法で、その他すべてを3番目の方法で配置します。

メソッドを作成すると、これを簡単に実装し、さまざまなタイプのコンポーネントのさまざまな位置を決定できます。

使用せずにこれを行うためのより良い方法はありinstanceOfますか?

(いいえ、自分LayoutManagerで作成する必要はありませんが、作成すると非常に簡単になります;))

前もって感謝します

/ B

0 投票する
2 に答える
248 参照

c# - クラスのオブジェクトが存在するかどうかを調べる方法

私の ListBoxItem MouseEnter イベントで、次のコードで新しいウィンドウを作成しています。

マウスが現在のアイテムから離れたら、ウィンドウを閉じたいです。

それ、どうやったら出来るの?

どうもありがとう。