問題タブ [final]

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.

0 投票する
3 に答える
2177 参照

java - Java: サブクラス インスタンスごとに異なる値を必要とするスーパークラスの public static フィールドの初期化

こんばんは、

コンテナークラスBoxに包含クラスの が含まれるように、一連の Java クラスを開発しています。Aは、他の との関係を指定できる必要があります。これを行う良い方法は、次のようにすることだと思いました。ListWidgetWidgetWidgets

のサブクラスは次のようになりWidgetます。

これで、BlueWidgetが実行できgetBox().addWidgetRelationship(RelationshipTypes.SomeType, RedWidget.WIDGETIDBox2 番目のパラメーターを と比較してリストを反復処理できますiter.next().getWidgetID()

今のところ、これはすべてうまく機能しています。私がやろうとしているのはpublic static final WidgetID WIDGETID、すべてのサブクラスで宣言し、代わりに親Widgetクラスに実装する必要がないようにすることです。問題は、そのコード行をWidget( の実装とともにgetWidgetID()) に移動すると、 のサブクラスのすべてのインスタンスが、に対して同じにWidgetなるように見えることです。ただし、非静的にすると、 を呼び出すことさえできなくなります。static final WidgetIDSubclassname.WIDGETIDSubclassname.WIDGETID

のインスタンスとサブクラスごとに異なることを確認しながらWidgetID、親クラスに静的を作成するにはどうすればよいですか? それとも、ここでの仕事に間違ったツールを使用していますか?WidgetWidgetWidget

ありがとう!

super()[編集] ライブラリのユーザーがすべてのサブWidgetコンストラクターを呼び出す必要はありません。

0 投票する
3 に答える
103631 参照

java - リフレクションを介してJavaのクラスのpublic static finalフィールド/プロパティの値を取得する

クラスがあるとします:

リフレクションを介して「_1st」の値を取得するにはどうすればよいですか?

0 投票する
4 に答える
299 参照

php - クラスまたはメソッドを「最終」として宣言するシナリオの例は何ですか?

クラスまたはメソッドを「最終」として宣言するシナリオの例は何ですか? いつこれを行う必要がありますか?

「最終」の実用的な使い方を理解するための例を教えてください...

あなたの答えを詳しく教えてください....

私はOOPの初心者なので、私を導いてください

0 投票する
2 に答える
933 参照

java - Clonable を Java に実装する

どのような場合にこの方法を使用する必要がありますか:

そして、どの場合にそのように使用する必要がありますか:

xが final で、最初の方法を使用したい場合はどうすればよいですか?

最初の方法については、次のように理解しています。スーパークラスを複製してアップキャストしたため、一部のメンバーが初期化されていません。この後、これらのメンバーを初期化します。私の理解は正しいですか?

ありがとうございました。

0 投票する
8 に答える
139984 参照

java - Java に定数機能がないのはなぜですか?

Java の定数の背後にある理由を特定しようとしていましたが、Java ではfinalキーワードを使用して定数を宣言できることを知りました。

const私の質問は、Java が定数 ( ) 機能を導入しなかった理由です。多くの人が C++ から来たと言うので、C++ にはconstキーワードがあります。

あなたの考えを共有してください。

0 投票する
4 に答える
621 参照

java - 匿名Javaクラスからプリミティブ変数を変更する合理的な方法は何ですか?

次のコードを書きたいと思います。

foundである必要があるため、明らかにこれは許可されていませんfinalfoundスレッド セーフの理由から、メンバー フィールドを作成できません。最良の代替手段は何ですか? 1 つの回避策は、定義することです。

しかし、これは適切にフォーマットすると多くのスペースを占有することになり、できれば車輪を再発明したくありません。List<Boolean>a を単一の要素 (その要素を変更するか、リストを空にする) またはa で使用することもできますBoolean[1]。しかし、どのオプションも意図したとおりに使用されていないため、すべてがおかしいようです。

これを行うための合理的な方法は何ですか?

0 投票する
5 に答える
14716 参照

java - Java で最終変数を初期化する際の問題

私はJavaの問題のわずかなバリエーションに遭遇し続けています.

final であるが動的なオブジェクト プロパティがあります。つまり、一度割り当てられた値を定数にしたいのですが、値はランタイムごとに異なる場合があります。そのため、クラスの先頭でクラス レベル変数を宣言しますprivate final FILE_NAME;。次に、コンストラクターで値を割り当てます-たとえばFILE_NAME = buildFileName();

buildFileName()メソッドに例外をスローするコードがあると、問題が発生します。だから私はコンストラクタで次のようなことを試みます:

「空白の最終フィールド FILE_NAME が初期化されていない可能性があります」というエラーが表示されます。ここで、Java の厳密なコンパイラーに少しイライラし始めます。キャッチに到達するとプログラムが終了するため、これが問題にならないことはわかっています...しかし、コンパイラはそれを認識しないため、このコードを許可しません。キャッチにダミーの割り当てを追加しようとすると、「最後のフィールド FILE_NAME は既に割り当てられている可能性があります」というメッセージが表示されます。一度しか割り当てられないため、try-catch の前にデフォルト値を割り当てることは明らかにできません。

何か案は...?

0 投票する
2 に答える
976 参照

class - メソッドをArrayオブジェクトに追加するScalaのパターンはありますか?

メソッドをArrayオブジェクトに追加できるScalaのパターンはありますか?

Int から RichInt への暗黙的な変換を考えています。しかし、Array は final クラスであるため、それはできません。

0 投票する
2 に答える
3410 参照

java - ArrayBlockingQueue で、最終メンバ フィールドをローカル最終変数にコピーするのはなぜですか?

では、ロックを必要とするすべてのメソッドは、を呼び出す前ArrayBlockingQueueにロックをローカル変数にコピーします。finallock()

フィールドがのときにthis.lockローカル変数にコピーする理由はありますか?lockthis.lockfinal

E[]さらに、操作する前にのローカル コピーも使用します。

final フィールドをローカルの final 変数にコピーする理由はありますか?

0 投票する
6 に答える
4887 参照

java - メソッドでの最終変数宣言の効果は何ですか?

単純なサーバーの典型的な例:

なぜSocketとして宣言する必要がありますfinalか?Threadリクエストを処理するnewがsocketメソッド内の変数を参照し直して、ある種の原因となる可能性があるためConcurrentModificationExceptionですか?