問題タブ [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.
java - Collections.unmodizableSet()はJavaで何をしますか?
これは、指定されたセットの変更不可能なビューを返すことがわかりますが、これを実現するために修飾子をCollections.unmodifiableSet
使用できない理由がわかりません。final
私の理解ではfinal
、定数を宣言します:変更できないもの。したがって、セットが定数として宣言されている場合、それを変更することはできません。セットから何も削除できず、何も追加できません。
なぜ必要なのCollections.unmodifiableSet
ですか?
python - Pythonで関数がオーバーライドされないようにする方法
クラス関数をオーバーライド不可にする方法はありますか? javaのfinal
キーワードのようなもの。つまり、オーバーライド クラスはそのメソッドをオーバーライドできません。
java - 最終オブジェクトを変更できるのはなぜですか?
私が取り組んでいるコードベースで次のコードに出くわしました:
INSTANCE
として宣言されfinal
ます。なぜオブジェクトを追加できるのINSTANCE
ですか?それはfinalの使用を無効にするべきではありません。(そうではありません)。
答えはポインタとメモリで何かをしなければならないと思いますが、確かに知りたいです。
scala - Scala と Java メモリ モデル
Java メモリ モデル (1.5 以降) は、フィールドfinal
を非final
フィールドとは異なる方法で扱います。特に、this
構築中に参照がエスケープされない限りfinal
、コンストラクターのフィールドへの書き込みは、オブジェクトがデータ競合を介して他のスレッドで使用可能になった場合でも、他のスレッドで可視であることが保証されます。(非フィールドへの書き込みfinal
は表示されるとは限らないため、それらを不適切に公開すると、別のスレッドがそれらを部分的に構築された状態で見る可能性があります。)
Scalaコンパイラがクラスのバッキングフィールドをfinal
(非ではなく)作成する方法/場合に関するドキュメントはありますか? final
言語仕様に目を通し、Web を検索しましたが、決定的な答えが見つかりません。(比較すると、@scala.volatile
注釈はフィールドを としてマークするように文書化されていますvolatile
)
java - なぜ私の内部クラスは非静的変数を見るのですか?
以前、内部の匿名クラスが「外部」クラスのフィールドを認識していなかったときに問題が発生しました。内部クラスに表示されるように、final変数を作成する必要がありました。今、私は反対の状況にあります。「outer」クラス「ClientListener」では、内部クラス「Thread」を使用し、「Thread」クラスには「run」メソッドがあり、「outer」クラスの「earPort」が表示されます。なんで?
java - すべてのフィールドと変数を最終的にする理由はありますか?
私の現在のプロジェクトでは、すべてのクラスフィールドとメソッド内の変数が可能な限りfinal修飾子で宣言されていることに気づきました。
ここのように:
そうする理由はありますか?
ps私が知っているように、プロジェクトはマルチスレッド化されるべきではありません(少なくとも私はそれについて何も聞いていません)。
java - スレッドのrun()メソッドの最後の列挙型
Elvis elvis定義をThreadrun()メソッド内で使用するためにfinalにする必要があるのはなぜですか?
java - Javaで例外が発生した場合にデフォルト値を最終変数に割り当てる
例外が発生した場合に最終値を書き込むことができない場合でも、Java が try ブロックに値を設定した後、catch ブロックの最終変数に値を代入させないのはなぜですか。
問題を示す例を次に示します。
この問題を回避するのは難しくありませんが、コンパイラがこれを受け入れない理由を理解したいと思います。
ご意見をお寄せいただきありがとうございます。
java - Java:「publicstaticfinal」例外としてのstartingPath
[更新、変更について申し訳ありませんが、実際の問題になりました] メソッドgetCanonicalPath()からの例外のために、そこにtry-catch-loopを含めることはできません。私は以前にメソッドを使用して問題を解決し、そこで値を宣言しようとしました。問題はそれが最終的なものであり、私はそれを変更することができないということです。したがって、startingPathを「publicstaticfinal」にする方法。