問題タブ [anonymous-inner-class]
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.
java - 匿名の内部クラスはスーパークラスを拡張する必要がありますか?
私はJavaスイングを学んでいて、匿名の内部クラスの概念に出くわしました。このリンクで少し調べた後、匿名の内部クラスは、パラメーターとして渡されるメソッドが事前定義されているため、常に他のクラスを拡張する必要があると感じています。せいぜい、メソッドが Object インスタンスをパラメーターとして受け入れる場合にのみ、匿名の独立した内部クラスを作成できます。私が正しいかどうか、あなたの意見を求めているだけです。例を挙げていただけると助かります。前もって感謝します。
java - jcheckbox の actionListener
匿名の actionListener を JCheckBox に追加しようとしていますが、値を更新するオブジェクトにアクセスするのが困難です。非最終に関するエラーが発生し続け、それらを最終に変更すると、他のことについて不平を言います。
私がやろうとしていることは以下のとおりです(読みやすくするためにGUIコードの一部を削除しました):
java - 匿名の内部クラスのメソッドを呼び出す方法は?
このコードは合法ではないことを理解しています:
では、sizzle メソッドを呼び出す方法は何でしょうか?
java - 異なる最終パラメータを取る場合、javas匿名内部クラスを再利用するにはどうすればよいですか?
構築に費用がかかり、その中の最終変数にアクセスする必要がある匿名の内部型を作成する必要があります。問題は、使用されるfinal変数(オブジェクト自体とタイプ)が異なるという唯一の違いを除いて、それらの多くを作成する必要があることです。
より再利用可能な方法でこれを行うことは可能ですか?
簡単な例:
異なるオブジェクトに対して同時に高価なToBuildのインスタンスが必要です。たとえば、1L、new Date()、「別の同様のユースケース」などです。
基本的な考え方は、実行時に具象クラスのさまざまなシリアル化されたインスタンスのプロキシを作成し、最初の使用時にこのオブジェクトを逆シリアル化することです。実用的な例(下部のリンク)を作成しましたが、プロキシの作成には非常に費用がかかります。
バイトコード拡張を介してプロキシオブジェクトを作成するためにMethodHandlerを必要とするProxyFactoryがあります。MethodHandlerはメソッドを定義します
私の場合、このメソッドは、プロキシが構築されているシリアル化されたオブジェクトを含むbyte[]にアクセスする必要があります。したがって、新しいMethodHandlerを作成し、プロキシが必要なオブジェクトごとに新しいProxyオブジェクトをビルド/コンパイルする必要があります。
invokeメソッドは、元のオブジェクトに対するすべてのメソッド呼び出しの前に自動的に呼び出され、そのオブジェクトが初期化されているかどうかを確認し、初期化されていない場合は逆シリアル化します。その後、元のオブジェクトで呼び出されたメソッドを呼び出します。
具体的なユースケースを確認したい場合は、次を参照してください。
java - 定義前に匿名内部クラスを参照する
別の投稿で、匿名の内部クラスをそれを使用する関数の「後」(下)に定義するのは間違っていると言われました。ただし、以下のようなものはコンパイルされ、正常に実行されます。
これに関する公式の言葉は何ですか?私の推測では、はであるためintComp
、static
クラスCompTest
が「ロード」されるときに1回インスタンス化されます(メインメソッドのみがあり、CompTest
オブジェクトが構築されていないため、そのロードがどのように行われるかは正確にはわかりません)。したがって、main()
必要に応じintComp
て使用できます。ソースファイルのどこで実際に定義されたかに関係なく。
そして、それが機能するとしても(上記の理由または別の理由で)...それは悪い習慣ですか?
java - 列挙型コンパイルエラーのJava匿名クラス
この問題を回避することはできますが、理解できないので、いくつかの説明を求めています(そしておそらくより良い質問のタイトルも)。
これを考慮してください:
この:
列挙型アイテムを定義するためにこのコードを書くとき:
コンパイラエラーが発生します(Eclipseのオートコンプリートも機能しません):
doGetメソッドにカーソルを合わせると、Eclipseは次のように定義されていることを示します。
他の場所では、ホバーすると署名が次のように正しく表示されます。
パラメータを指定して呼び出された場合new TBGProjects()
。
変更するだけ:
と:
それを機能させます。しかし、ここで何が起こっているのでしょうか?私は何が欠けていますか?
java - ジェネリックインターフェイスのインスタンス化
私はインターフェースを持っています
メソッドを書きたい
エラーが発生します
私はJavaにかなり慣れていないので、これは単純な間違いだと確信しています。どうすればこれを書くことができますか?
java - 静的メソッドを呼び出す Java 匿名内部クラス
私はEclipseアプリケーションに次のコードを持っています:
クラス X でメソッド テストを実行すると、次の出力が得られます。
起動
クラス Y で externalMethod が実行されなかった理由と、制御がクラス X に戻されなかった理由がわかりません (「終了」または「クラス Y 内」とは出力されません)。
externalMethod が実行されない理由についてのアイデアはありますか? 匿名の内部クラスは、クラス外で静的メソッドを呼び出すことを許可されていませんか? もしそうなら、なぜこのコードはコンパイルされるのですか?
java - コンパイラとランタイムシステムはJavaでネストされた型をどのように扱いますか?
コンパイラが次のようなネストされた型を認識する方法:
- ネストされた内部クラス
- 匿名クラス
- ネストされたインターフェイス
.....等
明確さが必要です.......
dalvik - Dalvikは匿名の内部クラスをdex形式に変換できますか?
xmlbeans-2.6.0.jarおよびxmlbeans-2.3.0.jarからdexファイルをビルドしようとしています。次のエラーが発生します。
DVMは匿名の内部クラスを.dex形式に変換できないと思います。誰かがこれに関して助けてくれるなら、それは本当に役に立ちます。