問題タブ [private-members]
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の抽象クラスからプライベートフィールドを変更する方法は?
抽象クラスがあります:
抽象クラスのソースを変更したくありませんが、フィールド期間の設定方法に柔軟性を追加する必要があります。オーバーライドされたメソッドからフィールド period の値を変更することは可能ですか? たとえば、次のようにします。
このコードを実行しようとするとsuper.getClass().getDeclaredField("period")
スローされますjava.lang.NoSuchFieldException: period
java - リフレクションを介して Java プライベート フィールドにアクセスできるのはなぜですか?
この例を考えてみましょう:
リフレクションを使用してクラスのプライベート フィールドにアクセスできるのは非論理的です。なぜそのような機能が利用できるのですか? そのようなアクセスを許可するのは「危険」ではありませんか?
javascript - Javascript: eval() および new Function() によって作成されたコードのデバッグ
プライベート変数を既存の関数に入れようとしています。例:
私の目標は、既存の AObject が所有する get() 関数を private var で実行することです ... eval(または new Function) を使用して取得しますが、残念ながらデバッガーが壊れます!
では、eval を使用せずにこれを達成する方法、または eval を使用してデバッガーを便利に保つ方法はありますか?
unit-testing - ユニットテスト時にJavaアクセスをバックドアする代わりの方法
いくつかのプライベートメソッドを使用してクラスを単体テストしようとしています。それぞれのプライベートメソッドはかなり広範囲に及ぶ可能性があります。
メソッドパッケージのスコープを設定するか(警告が発生します)、以下のコードを使用してテストできます。
クラスは「神オブジェクト」ではなく、そのメソッドのほとんどはそのすべてのフィールドにアクセスします。
これをより適切に処理する方法について何か提案はありますか?
php - 子メソッドで親変数にアクセスする
現在、Dog と呼ばれるクラスと Poodle と呼ばれるクラスの 2 つのクラスがあります。Poodle クラスの Dog で定義された変数を使用するにはどうすればよいでしょうか。私のコードは次のとおりです。
このエラーが発生します
Notice: 未定義の変数: name
c++ - プライベートデストラクタでオブジェクトを削除する
次のコードでプライベートデストラクタを使用してオブジェクトを削除できるのはどうしてですか?実際のプログラムを次のサンプルに減らしましたが、それでもコンパイルして動作します。
f# - f#インタラクティブを使用してプライベートフィールド/メソッド/プロパティにアクセスする方法
F#インタラクティブは、WinFormまたはWpfウィンドウのいずれかを実行し、そこで任意のコードを呼び出すことができるため、強力な開発ツールです。
これにより、「コードを試す前に試す」アプローチが可能になります。
非常に頻繁に私は「境界を破る」ことを明示的に望んでいます
- プライベート/保護されたメソッドを呼び出す
- プライベートフィールドとプロパティへのアクセス/変更
これを達成するための回避策はありますか?
java - プライベートインスタンスをオブジェクト間で共有しても大丈夫ですか?
私が受講しているプログラミングコースでは、プライベートメンバーのみを使用することが許可されており、このようなもので大丈夫かどうか疑問に思いました。
ViewクラスとControllerクラスはどちらも、プライベートフィールドと同じモデルのインスタンスを保持します。これは受け入れられますか?プライベートフィールドの概念に違反しているようです。教授に聞いてみたところ、大丈夫だと言われましたが、彼が私の質問を理解したのか、それとも彼の答えを理解したのかわかりません:)
documentation - プライベート メソッドを文書化する必要がありますか?
プライベート メソッドのドキュメントは、ソース コードにアクセスできる人だけが見ることができます。それに費やした労力に見合う価値はありますか?
java - Javaのコンストラクターからプライベートfinalメンバー変数を宣言して設定する適切な方法は?
コンストラクターからメンバー変数を設定するには、さまざまな方法があります。私は実際に、最終的なメンバー変数、具体的にはヘルパークラスによってエントリがロードされるマップを適切に設定する方法について議論しています。
上記の例では、ヘルパークラスは次のようになります。
私の考えでは、コンストラクターでそのような変数を設定するメソッドを使用する方が良い方法です。したがって、Baseクラスは次のようになります。
しかし、現在、最終修飾子を維持できず、コンパイラエラーが発生します(最終変数を設定できません)
これを行う別の方法は次のとおりです。
ただし、この場合、Helperクラスのメソッドは次のように変更されます。
違いは、どこで新しいマップを作成するnew HashMap<String, Command>();
かです。私の主な質問は、機能の一部がこのヘルパーの静的メソッドからのものであり、実際のマップにエントリをロードする方法として、これを行うための推奨される方法があるかどうかです。
BaseクラスまたはHelperクラスで新しいマップを作成しますか?どちらの場合も、ヘルパーが実際の読み込みを行い、具体的なコマンドを保持しているマップへのBaseの参照は非公開で最終的なものになります。
私が検討しているオプション以外に、これを行うためのよりエレガントな方法はおそらく他にありますか?