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

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

8
Javaでのinstanceofの回避
「instanceof」操作のチェーンを持つことは「コードのにおい」と見なされます。標準的な答えは「多態性の使用」です。この場合、どうすればよいですか? 基本クラスにはいくつかのサブクラスがあります。それらのどれも私の制御下にありません。同様の状況は、JavaクラスInteger、Double、BigDecimalなどです。 if (obj instanceof Integer) {NumberStuff.handle((Integer)obj);} else if (obj instanceof BigDecimal) {BigDecimalStuff.handle((BigDecimal)obj);} else if (obj instanceof Double) {DoubleStuff.handle((Double)obj);} NumberStuffなどを制御できます。 数行で十分なコード行を使いたくありません。(時々、HashMapマッピングInteger.classをIntegerStuffのインスタンスに、BigDecimal.classをBigDecimalStuffのインスタンスに、などを作成します。しかし、今日はもっと単純なものが必要です。) 私はこれと同じくらい簡単なものが欲しい: public static handle(Integer num) { ... } public static handle(BigDecimal num) { ... } しかし、Javaはそのようには機能しません。 フォーマット時に静的メソッドを使用したいのですが。私がフォーマットしているものは複合であり、Thing1にはThing2の配列を含めることができ、Thing2にはThing1の配列を含めることができます。次のようにフォーマッタを実装すると問題が発生しました。 class Thing1Formatter { private static Thing2Formatter thing2Formatter = new Thing2Formatter(); public format(Thing …

6
リフレクションを使用せずにオブジェクトが配列であるかどうかを確認するにはどうすればよいですか?
リフレクションを使用せずにオブジェクトが配列である場合、Javaでどのように表示できますか?また、リフレクションを使用せずにすべてのアイテムを反復処理するにはどうすればよいですか? 私はGoogle GWTを使用しているので、リフレクションの使用は許可されていません:( リフレクションを使用せずに次のメソッドを実装したいと思います。 private boolean isArray(final Object obj) { //??.. } private String toString(final Object arrayObject) { //??.. } ところで、JavaScriptを使用したくないので、GWT以外の環境でJavaScriptを使用できます。
98 java  arrays  gwt  instanceof 

3
TypeScriptの「instanceof」で「「Foo」は型のみを参照しているが、ここでは値として使用されている」というエラーが表示されるのはなぜですか?
私はこのコードを書きました interface Foo { abcdef: number; } let x: Foo | string; if (x instanceof Foo) { // ... } しかし、TypeScriptは私にこのエラーを与えました: 'Foo' only refers to a type, but is being used as a value here. なんでこんなことが起こっているの?instanceof私の値が特定のタイプを持っているかどうかをチェックできると思いましたが、TypeScriptはこれを好まないようです。


2
'instanceof'演算子は、インターフェイスとクラスでは動作が異なります
instanceofJava での演算子の以下の動作について知りたいのですが。 interface C {} class B {} public class A { public static void main(String args[]) { B obj = new B(); System.out.println(obj instanceof A); //Gives compiler error System.out.println(obj instanceof C); //Gives false as output } } なぜそうなのですか?そこの間には関係ありませんinterface Cとはclass B、しかし、の場合には、一方、それは偽与えobj instanceof A、それコンパイラエラーを与えますか?

7
JavaにinstanceOf(Class <?> c)のようなものはありますか?
オブジェクトoがクラスのインスタンスであるCか、のサブクラスのインスタンスであるかを確認したいと思いますC。 場合たとえば、pクラスであるPoint私がしたいx.instanceOf(Point.class)ことをtrueしてもx.instanceOf(Object.class)しますtrue。 ボックス化されたプリミティブ型でも機能するようにしたい。例えば、場合xでInteger、その後x.instanceOf(Integer.class)でなければなりませんtrue。 そんなことはありますか?そうでない場合、どうすればそのようなメソッドを実装できますか?

6
オブジェクトがパラメータタイプのインスタンスであるかどうかをテストします
オブジェクトがジェネリック型のインスタンスであるかどうかを判断する方法はありますか? public &lt;T&gt; test(Object obj) { if (obj instanceof T) { ... } } それは明らかに機能しません。代替手段はありますか?Javaリフレクションを使用してクラスをインスタンス化し、それがジェネリック型であることを確認したいのと同じですT。

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