問題タブ [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 - Runnable Inline Class 宣言 - 外部の非最終変数にアクセス可能
以下のコードでは、なぜインライン クラスの run() が外側のクラス変数であるセマフォにアクセスできるのか疑問に思っています (final と宣言されていないにもかかわらず)。
セマフォ参照が final と宣言されていないため、Eclipse がコンパイル エラーにフラグを立てることを期待していました。
java - 匿名の内部クラスとは異なる動作をするラムダ
いくつかの基本的なラムダの演習を行っているときに、明らかに同一の匿名内部クラスからの出力が、ラムダとは異なる出力を与えていました。
シナリオ #1
出力2および2。ここには新しいものはありません。
しかし、私がこれを行うとき:
シナリオ 2
出力2および3
質問: 両方の出力が同一であるべきではありませんか? 何か不足していますか?
完全を期すために: シナリオ #3
出力3および3。ここでも新しいことは何もありません。
更新: 1.8.0-b132 から引き続き同じ出力が得られます
更新 #2: バグ レポート: https://bugs.openjdk.java.net/browse/JDK-8038420
更新 #3: バグは javac で修正されました。現在、同じ結果を取得できるはずです。
java - 匿名クラス引数からクラスのインスタンスにアクセスする
サイト上のすべての匿名の内部クラスの質問を通して、これに対する答えを見つけることができないようです.
私のログイン フレームはActionListener
. login
内からアクセスするにはどうすればよいnew ActionListener()
ですか?
現在、エラーが発生しています:
変数ログインが初期化されていない可能性があります。
java - 他のクラスを拡張する内部匿名クラスの作成
私はこれが機能することを知っています:
クラスを暗黙的に拡張してオブジェクトを作成しますAbstractClass
(これは明らかにabstract
です)。
しかし、次も機能しますか?
ConcreteClass は ではないクラスですabstract
。
java - 匿名クラスと匿名内部クラスについて混乱しています
Java でラムダ式を実行する方法を学ぶために検索しましたが、代わりに混乱が生じました。したがって、匿名クラスに関する私の理解は次のとおりです。
匿名内部クラスという言葉は以前に見たことがありますが、その時は通常の匿名クラスが何であるかを知りませんでした。私が見ているスレッドやビデオの多くは、匿名の内部クラスを単に「匿名クラス」と呼んでいるようです。それらは同義ですか?匿名内部クラスの私の理解は次のとおりです。
基本的に、Square のサブクラスを作成してから calculatePerimeter() メソッドをオーバーライドする代わりに、1 回限りの Square クラスを作成し、それらのメソッドをオーバーライドすることができます。これは正しいです?
したがって、匿名の内部クラスは継承と関係があります。私はそれの使用を理解していません。おそらく、これまでにそれらを使用したことがないか、プログラミングの経験があまりないためです。例を挙げたり、それが役立つ場合に説明したりできますか?
更新: 匿名内部クラスのコードを IDE に移動したときに、エラーがあることがわかりました。どうやら、「正方形」は長方形のフィールドを継承していません。これでますます駄目になりませんか?
同等のものは次のとおりです。
java - 内部クラスの型名を取得する
クラス内でインスタンス化されたタイプ (インターフェース) の名前を取得しようとしていますが、試した利用可能なメソッドはタイプの実際の名前を返しません。
例:
名前を取得するには、次のようにします。
たとえば、java.lang.Runnable インターフェースを使用します。
のようなものを出力class test.Test$2
しますが、 Class クラスで他のメソッドを試しましたが、 null またはtest.Test
. どうすればそこから抜け出すことができclass java.lang.Runnable
ますか?
ありがとう!
java - クラスのインスタンス化中に関数を宣言する
次の Java コードに遭遇しましたが、それが何を意味するのかわかりません。クラスをインスタンス化した後、'{' にコードを記述できますか?
しかし、コードを実行しようとすると、出力に「Z is 10」が表示されません。Javaのこの機能に関連する詳細情報を入手できるリンクを教えてください。