問題タブ [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 投票する
2 に答える
2233 参照

php - 文字列および初期化不可能なクラスに対するPHPインスタンス

特定のクラスが特定のインターフェイスを拡張または実装しているかどうかを確認する必要があります。

クラス名は可変文字列であることに注意してください。つまり、このクラスのインスタンスはありません。

ユーザーはクラスのリストからクラスを選択することになっており、システムはそのクラスが特定のインターフェースを実装しているかどうかをチェックすることになっています。クラスのリストは可変であり(現在実行中のPHPソフトウェアによる)、これらのクラスの一部は初期化できますが、他のクラスは初期化できません。

これが私が使用しているコードです:

その最後のテストでは、次のエラーが表示されます。

キャッチ可能な致命的なエラー:「クロージャ」のインスタンス化は、XX行のC:\ Users \ abcdefghijklmn\debug.phpでは許可されていません

私が試したこと:

  • 使用$obj=new @$obj();:-エラーは非表示になっていますが、それでも障害/停止します。
  • 問題のあるブロックの周りを使用try{}catch(){}する:-何も変わりません
  • 使用'class' instanceof 'class'($ objは文字列):-false無条件に戻ります

このメソッドで使用される必須のクラス初期化は...sucksであることに注意してください。インスタンスを作成すると、不要なメモリ消費、速度の低下、エラーが発生しやすくなります(パラメータなしでインスタンス化すると、HDDが破壊されるという奇妙なクラスを想像してみてください;))。ですから、他に方法があれば、私はそれについて知りたいだけです。


編集:これは(うまくいけば)最終的なコードです:-

0 投票する
3 に答える
3132 参照

java - ジェネリックとインスタンス - Java

OK、これは私のクラスです。オブジェクトをカプセル化し、equals と to String をこのオブジェクトにデリゲートします。なぜ、インスタンスを使用できないのですか???

どうすればこれを機能させることができますか?? ありがとう!

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

java - ここでの「等しい」実装では、Javaは何をしますか?

今日、私は次のことに遭遇しました:

次の「等しい」メソッドを持つ2つのクラスNewClassとNewClass1について考えてみます。

NewClass:

NewClass1:

私が奇妙だと思うのは、NewClass1のequalsがNewClassのequalsよりも指数関数的に遅いように見えることです(10.000.000は3000msに対して14msを呼び出します)。最初は、これは「instanceof」チェックに関連していると思いましたが、「return equals((NewClass1)obj);」を置き換えると 「falseを返す;」NewClass1では、突然、ほぼ同じ速度で実行されます。私の意見では、equals(Object)のreturnステートメントが実際に呼び出されることはないため、ここで何が起こっているのかはよくわかりません。ここで何が間違っているのですか?

以下は、私がそこで間違いを犯した場合の私の「ベンチマークコード」です。

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

java - 互換性のない 2 つのクラスに対して使用すると、「false」ではなく「instanceof」エラーが返されるのはなぜですか?

私はこれを読んでいます:
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.20.2

彼らが言うには:

サンプルプログラムを考えてみましょう:

のインスタンスも、その可能なサブクラス (ここには表示されていません) も、 のサブクラスのインスタンスになる可能性がinstanceofないため、式は正しくありません。ElementPoint

instanceof単純にfalse を返すのではなく、なぜこれがエラーになるのでしょうか?

ありがとう、

JDelage

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

java - Java:ジェネリックのインスタンス

ジェネリックのクラスタイプを見つける方法はありませんか?

上記は間違いなくコンパイルされません。

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

java - メソッドが返すインスタンスを見つける方法は?Javaプログラミング

次のようなオブジェクトがある場合:

次に、個人のリスト/配列などを返すサービスの関数がありますが、リストの一部の項目は教師である場合と学生である場合があります。

リターンエンドでは、ユーザーが各要素のインスタンスをチェックして、それが学生であるか教師であるかを判断できるようにしたいと思います。

このコードを構造化するための最良の方法は何ですか。

だから、サービスでは私はこのようなものが欲しいです:

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

php - 関数を親に伝達する

クラスのセットで構成されるPHPオブジェクトがあります。簡単にするために、クラスBを拡張するクラスCのオブジェクトと呼び、次にクラスAを拡張します。コードのある時点で、インターフェイスIから継承するdoCleanup()関数を呼び出してオブジェクトをクリーンアップしたいと思います。 :

クラスCIのdoCleanup関数で、親クラス(この場合はクラスAのdoCleanup())のクリーンアップ関数も実行したいと考えています。ただし、一部のオブジェクトでは、親クラスのいずれかが実際にインターフェイスIを実装しているかどうかわからないため、単純にを呼び出すことができるかどうかはわかりませんparent::doCleanup()

したがって、私の質問は、たとえば、ある種のinstanceof呼び出しを使用して、私の祖先のいずれかがインターフェースを実装しているかどうかを確認する方法があるかどうかです。

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

php - 動的にロードされたクラスにインターフェイスを拡張または実装するように強制します

PHPで、子クラスがインターフェイスを宣言しなくても、クラスにインターフェイスを強制的に拡張または実装できるかどうかを知っている人はいますか?

例:

明らかにそれは機能しませんが、インターフェース要件についての事前の知識がないが、それらに従うことを余儀なくされているクラスにロードする方法が必要です。

私の全体的な目標は、クラスがロードされ、そのコンストラクターが呼び出されるに、クラスが要件を実装しているかどうかを確認することです。

だから私はこれを使うことができません:

DingleBerryのコンストラクターは、要件を実装しているかどうかを確認する前に呼び出されるためです。掘る?

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

reflection - isInstanceOf 呼び出しで構造型を使用するには?

タイトルは基本的にそれを言います。

new Object {def foo = "bar"}たとえば、isInstanceOf[<structural_type_here>]呼び出しでのタイプを使用する方法はありますか?

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

java - Java では、プリミティブ型リテラルまたは型変数を instanceof 式で使用できますか?

プリミティブ型リテラルまたは型変数を式で使用できますinstanceofか?

コンパイル エラーが発生します。これらのエラーを回避し、式でプリミティブ型リテラル/型変数を使用する方法はありますinstanceofか?

基本的に、そんなことは絶対にできないと安心したいのです。