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

instanceofは、Java、php、JavaScriptなどのオブジェクト指向言語で使用できる演算子です。一般的に言えば、プログラマーは、左のオペランドとして渡されたオブジェクトが、右のオペランドで指定されたクラスのインスタンスであるかどうかを確認できます。

9
インスタンスのクラス名を取得していますか?
これを行う関数がインスタンスのクラスが派生した基本クラスである場合、Pythonでオブジェクトのインスタンスを作成したクラスの名前を見つけるにはどうすればよいですか? おそらく、inspectモジュールが私を助けてくれたかもしれないと思っていましたが、それは私が欲しいものを与えていないようです。__class__メンバーを解析する前に、この情報を取得する方法がわかりません。



24
Javaでのinstanceofの使用によるパフォーマンスへの影響
私はアプリケーションに取り組んでおり、1つの設計アプローチにはinstanceofオペレーターの非常に重い使用が含まれます。OO設計は一般的にの使用を避けようとすることは知っていますがinstanceof、それは別の話であり、この質問は純粋にパフォーマンスに関連しています。パフォーマンスに影響があるかどうか疑問に思っていましたか?と同じくらい速い==ですか? たとえば、10個のサブクラスを持つ基本クラスがあります。基本クラスを取る単一の関数で、クラスがサブクラスのインスタンスであるかどうかを確認し、いくつかのルーチンを実行します。 私がそれを解決することを考えた他の方法の1つは、代わりに「type id」整数プリミティブを使用し、ビットマスクを使用してサブクラスのカテゴリを表し、次にサブクラス「type id」のビットマスク比較をカテゴリーを表す定数マスク。 されてinstanceof何とかよりも速いことをJVMによって最適化?Javaにこだわりたいのですが、アプリのパフォーマンスが重要です。以前にこの道を下ったことがある誰かがいくつかのアドバイスを提供できればそれはクールです。あまりにもつまらないか、最適化するために間違っていることに焦点を合わせていますか?

10
JavaScriptのinstanceof演算子とは何ですか?
instanceofJavaScript のキーワードは、JavaScriptはオブジェクト指向プログラミング言語ではないと考える傾向があるため、最初に遭遇したときは非常に混乱する可能性があります。 それは何ですか? それはどのような問題を解決しますか? いつそれが適切でいつ適切でないのですか?

10
一部のリテラルでinstanceofがfalseを返すのはなぜですか?
"foo" instanceof String //=> false "foo" instanceof Object //=> false true instanceof Boolean //=> false true instanceof Object //=> false false instanceof Boolean //=> false false instanceof Object //=> false // the tests against Object really don't make sense 配列リテラルとオブジェクトリテラルが一致しています... [0,1] instanceof Array //=> true {0:1} instanceof Object //=> true …



3
JavaScript!instanceof ifステートメント
これは本当に私の好奇心を満たすための本当に基本的な質問ですが、次のようなことをする方法があります: if(obj !instanceof Array) { //The object is not an instance of Array } else { //The object is an instance of Array } ここでの鍵はNOTを使用できることです!インスタンスの前。通常、これを設定する方法は次のとおりです。 if(obj instanceof Array) { //Do nothing here } else { //The object is not an instance of Array //Perform actions! } そして、オブジェクトが特定のタイプかどうかを知りたいだけのときにelseステートメントを作成しなければならないのは少し面倒です。

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です。)悪い考えである理由はありますか?

17
Javaで使用される「instanceof」演算子は何ですか?
instanceof演算子は何に使用されますか?私はのようなものを見てきました if (source instanceof Button) { //... } else { //... } しかし、それは私には意味がありませんでした。私は研究をしましたが、説明なしの例だけを思いつきました。
163 java  instanceof 

8
Java:InstanceofおよびGenerics
値のインデックスのジェネリックデータ構造を調べる前に、それがthisパラメーター化されている型のインスタンスでさえあるかどうかを確認したいと思います。 しかし、これを行うとEclipseは不平を言います。 @Override public int indexOf(Object arg0) { if (!(arg0 instanceof E)) { return -1; } これはエラーメッセージです。 型パラメーターEに対してinstanceofチェックを実行できません。ジェネリック型情報は実行時に消去されるため、代わりにその消去オブジェクトを使用してください それを行うためのより良い方法は何ですか?


4
instanceofとgetClass()
getClass()and ==operator over instanceOfoperator を使用すると、パフォーマンスが向上します。 Object str = new Integer("2000"); long starttime = System.nanoTime(); if(str instanceof String) { System.out.println("its string"); } else { if (str instanceof Integer) { System.out.println("its integer"); } } System.out.println((System.nanoTime()-starttime)); starttime = System.nanoTime(); if(str.getClass() == String.class) { System.out.println("its string in equals"); } else { if(str.getClass() == Integer.class) …
114 java  class  instanceof 

6
Dartでランタイム型チェックを実行するにはどうすればよいですか?
Dart仕様には次のように記載されています。 具象化された型情報は、実行時のオブジェクトの型を反映し、動的な型チェック構造(他の言語のinstanceOf、キャスト、タイプケースなどの類似物)によって常に照会される場合があります。 素晴らしい音ですが、のinstanceofような演算子はありません。では、Dartでランタイム型チェックを実行するにはどうすればよいでしょうか。まったく可能ですか?

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