問題タブ [local-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 - 任意の Java Bean にプロパティを追加する
引数として任意の Java Bean を指定すると、その Bean のコピーであるが、追加のプロパティを含む Bean の型の無名サブクラスに属するオブジェクトを返す関数を作成したいと考えています。私がこれまでに持っているものの例で説明しましょう:
Foo.java:
Garply.java:
実際には を呼び出すことができないため、これはばかげているように思えますgetQux()
が、私が使用しているツールは、リフレクションを使用してqux
プロパティを正常に見つけ、それを使用して必要なことを行います。
私の問題は、プロパティをfooWithQux()
追加できるようにしたいタイプごとに個別の関数を持ちたくないということです。理想的には、任意のタイプのオブジェクトを受け入れるqux
ようなものが必要です。beanWithQux()
次のようなものでこれを機能させることができると思います:
ここが私が立ち往生している場所です。指定されたオブジェクトのすべてのプロパティを新しいオブジェクトにコピーする方法がわかりません。誰にもアイデアがありますか?理想的には、たくさんのリフレクション マジックを自分で書くのではなく、lombok (Foo
クラスを制御し、必要に応じて注釈を追加できます) を使用してできることがあるでしょう。@Builder
ありがとう!
c++ - テンプレート化されたメソッドを持つネストされた構造体が許可されていないのに、ジェネリックラムダが許可されているのはなぜですか?
私が理解している限り、ジェネリックラムダは、テンプレート化されたローカルスコープ構造体のオブジェクトに変換されますoperator()
。これにより、汎用ラムダが非常に強力で使いやすいツールになります。一方、構造体にテンプレート化されたメンバーがある場合は、関数にネストされた構造体を作成できます。
またはそれ自体がテンプレート化されています:
コンパイラのコンパイルに問題があるようです:
と
問題は、コンパイラのバグよりも C++ 標準にあると思います。ラムダがローカル構造ではなく、テンプレート化されたメンバーを持つことが許可されている理由は何ですか?
私はこの質問を見つけましたが、答えは時代遅れだと思います(c ++ 11でも真実ではないと思います)。
java - ローカル静的内部クラスと呼ばれるものはありますか?
私はちょうど内部クラスを試していて、ローカルでありながら静的な内部クラスを持つというこの考えに出くわしました...まあ、静的メソッド内に内部クラスを作成しました..まあ、それは単純です..これが私がした例です
これにより、コンパイルエラーは発生しません。
静的メソッド m にアクセスする方法を知っています。しかし、外部クラスからローカル クラスLocalStaticにアクセスする方法があるかどうか知りたい です。私の理解では、メソッド内の何かにアクセスすることはできませんよね? したがって、クラスOuterの外部からLocalStaticまたはそのローカル クラス内のメソッドまたは属性にアクセスすることはできません。