問題タブ [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.
php - ラッパークラスの PHP-instanceof-operator を操作する
一部のクラスが一部のメソッド呼び出しをインターセプトして操作するための汎用ラッパー クラスが必要です。メソッド呼び出し転送、インターセプト、今のところ問題ありません。しかし、しばらく考えた後、解決策のない問題を見つけました。アプリケーションのあらゆる場所で組み込みの instanceof-operator を使用しています。もちろん、ラッパーはその中のクラスのインスタンスではないため、これはもう機能しません。他の関数に置き換えるのではなく、引き続き演算子を使用したいと思います。
この問題の回避策を実装する方法はありますか? このオペレーターはどのように機能しますか? おそらくラッパーで上書きできるクラスのコア関数を呼び出しますか?
これがこのオペレーターを操作するための本当に「クリーンな」ソリューションではないことはわかっていますが、これが私にとって最も簡単なソリューションになると思います。そして、私たちが知っているように、PHPにはそれほどきれいではないものがたくさんあります... :-)
答えてくれてありがとう、ベン
java - Java の instanceOf の使用は、「インターフェイスへのプログラム」設計原則と互換性がありますか?
ご存知のように、「インターフェイスへのプログラム」の設計原則は、具体的な型や実装ではなく、スーパータイプを広く好みます。
Javaプログラムでinstanceofを使用してスーパータイプから具象型を導出するという原則と一致していますか?
私のアプリケーションでは、Storehouse は、いくつかのプライベート変数とパブリックの getter および setter を持つ抽象スーパータイプ クラスです。
ConcreteStorehouseA は Storehouse を継承し、多くの具体的なメソッドと変数を持っています。ConcreteStorehouseB は似ていますが異なります。
私のアプリケーションは倉庫を受け取ります。ただし、Storehouse は操作するのに便利なタイプではありません。本当に有用なメソッドだけが具体的な型に含まれているため、次のように instanceof を使用します。
instanceof の使用は原則と互換性がありますか?
編集:
本質的に、このアプリケーションは、テーブル トップ RPG、Shadowrun のサイコロ シミュレーターです。具体的なタイプは、成功テスト、反対テスト、拡張テストなどのさまざまなテスト タイプであり、成功する操作の要因とパラメータはすべて非常に異なります。スーパータイプには基本的にダイス プールが含まれています。
java - instanceof と getClass( )
getClass()
演算子よりもand==
演算子を使用すると、パフォーマンスが向上しinstanceOf
ます。
どちらを使用するか、またはどちらを使用するかのガイドラインはありますgetClass()
かinstanceOf
?
シナリオを考えると、一致する正確なクラス、つまりString
、Integer
(これらは最終クラスです)などを知っています。
instanceOf
オペレーターの悪い習慣を使用していますか?
java - この場合の instanceof アプローチの代替
こんにちは、次のようなものに代わるよりエレガントな代替手段は何だろうかと思っています。
では、代替手段は何ですか...
アドバイスありがとうございます。
編集:基本クラスには2つだけでなく多くのサブクラスがあり、その数は時間とともに増加する可能性があります
java - クラスオブジェクトである引数でinstanceofをチェックする方法は?
ジェネリック クラス ローダーを構築しようとしています。メソッド引数に対してロードするクラスをチェックして、それらが同じクラスであるかどうかを判断する必要があります。
コードは、主に私がやろうとしていることを説明しています。
これはどのように達成されますか?
javascript - もっと奇抜なJavaScriptのシェナニガンが頭に浮かぶ
JavaScriptでのオブジェクト指向プログラミングについてMikeKossを読みました。彼はサブクラス化について簡単に話し、「代替のサブクラス化パラダイム」に触れています。この例の後、Kossは次のように書いています...
instanceof
残念ながら、この手法では、演算子を使用してスーパークラスのメンバーシップをテストすることはできません。ただし、複数のスーパークラス(多重継承)から派生できるという追加の利点があります。
...そしてそれは私に考えさせました。多重継承のアイデアはかっこいいようです!したがって、2つの質問があります。
- 多重継承のアイデアは実用的ですか?それは実際に実践されていますか?長所または短所はありますか?
instanceof
演算子をオーバーライドして、その機能を多重継承に拡張するにはどうすればよいですか?
android - Androidで例外オブジェクトタイプを確認するにはどうすればよいですか?
関数から他のデータと共に返される Android の例外オブジェクト タイプを確認したいと思います。私は以下を使用していましたが、これは発生したくないサブクラス SSLPeerUnverifiedException に対してもトリガーされます。
次に、これを次のように変更しましたが、文字列を比較するよりも比較チェックの方が優れていると思いました。
jsf - JSF EL: instanceof は予約済みですが、まだ実装されていませんか?
JSF EL で instanceof 演算子を見つけましたが、使用すると例外がスローされます。明らかに予約されていますが、実装されていませんか? 私が現在使用しているJSF 1.2よりも新しいバージョンではない場合、(おそらく)いつ利用可能になりますか?
java - switch ステートメントで instanceof 演算子を使用することは可能ですか?
instanceof
オブジェクトに switch case を使用することについて質問があります。
例: 私の問題は Java で再現できます。
を使用してどのように実装されswitch...case
ますか?
java - javax.swing.text から AbstractDocument.UndoRedoDocumentEvent に対して instanceof を試行すると、IllegalAccessError が発生します
のソースでjavax.swing.text.DefaultCaret.Handler.insertUpdate(DocumentEvent)
、次の行を見つけました (1685 行目から):
しかし、私がこれを試すと:
それは与えるでしょう:
なぜ私はinstanceof
そのクラスに反対することはできませんが、DefaultCaret.Handler
できるのですか?
Java バージョン 1.6.0_20 の使用
アップデート:
回答に基づいて、次のことを試しました。
ファイルFoo.java
:
ファイルOuter.java
:
これは正常に機能し、期待どおりに「aww」を出力します。
両方のファイルがパッケージに含まれていることに注意してくださいjavax.swing.text
。また、最初の質問でFoo.java
すでにパッケージに含まれていたことにも注意してください。javax.swing.text
私が知る限り、パッケージは「密封」されていません。rt.jar
(パッケージを含むもの)のマニフェストにjavax.swing.text
「封印」が含まれていませんでした。コマンドPackage.getPackage("javax.swing.text").isSealed()
は false を返します。
したがって、パッケージの他のクラスはできますがinstance of
、自分の内部クラスに対してはできますが、に対してはできません。AbstractDocument.UndoRedoDocumentEvent
これはなぜですか?