問題タブ [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 - Javaの再帰アルゴリズムで「完了したこと」のカウントを維持する方法は?
文字列を 1 文字ずつ処理し、それを解析してツリーのような構造を作成する再帰アルゴリズムがあります。パーサーが現在いる文字インデックスを追跡できるようにしたいのですが (他の何よりもエラーメッセージについて)、複数の返された型を処理するタプルのようなものを実装することに熱心ではありません。
メソッドの外側で宣言され、再帰メソッドに渡された Integer 型を使用しようとしましたが、それは最終的なものであるため、戻ったときに再帰呼び出しのインクリメントは「忘れられます」。(整数値の増分により、値渡しオブジェクトの参照ポイントが新しいオブジェクトになるため)
私のコードを汚染しないような仕事に似たものを得る方法はありますか?
java - 不変クラスは最終的なものにする必要がありますか?
この記事では次のように述べています。
不変であるためクラスをfinalにすることは、そうする正当な理由です。
私はこれに少し困惑しています...スレッドセーフとシンプルさのPOVから不変性は良いことだと理解していますが、これらの懸念は拡張性とはやや直交しているようです。では、不変性がクラスを final にする正当な理由になるのはなぜでしょうか?
java - メソッド パラメータとローカル変数に final を使用する必要があるのはいつですか?
可能な限り使用することを提案するいくつかの参照 (たとえばfinal
) を見つけましたが、それがどれほど重要か疑問に思っています。これは主に、最終的なメソッドやクラスではなく、メソッド パラメーターとローカル変数のコンテキストにあります。定数の場合、それは明らかに理にかなっています。
一方では、コンパイラーはいくつかの最適化を行うことができ、プログラマーの意図をより明確にします。一方、冗長性が追加され、最適化は簡単になる場合があります。
それは私が覚えておくために努力すべきことですか?
java - Javaで代数型を実装する方法はありますか?
Java で、クラスが特定のサブクラスのセットを持ち、他のクラスを持たないようにすることは可能ですか? 例えば:
A の他のサブクラスを作成できないように強制することはできますか?
java - Javaの最終定数をオーバーライドできるのはなぜですか?
Javaの次のインターフェースについて考えてみます。
そして次のクラス:
クラスAがやって来て、インターフェイスIの最終定数をオーバーライドできるのはなぜですか?
自分で試してみてください:
java - Javaで継承を禁止する正当な理由は?
Java で継承を禁止する正当な理由は何ですか?たとえば、最終クラスを使用するか、単一のプライベート パラメーターなしのコンストラクターを使用するクラスを使用することによりますか? メソッドを final にする正当な理由は何ですか?
java - Javaでメソッドパラメータをfinalと宣言するパフォーマンス上の理由はありますか?
Javaでメソッドパラメータをfinalと宣言するパフォーマンス上の理由はありますか?
次のように:
対:
bar
は読み取り専用であり、変更されることはないと仮定しfoo()
ます。
java - Javaで変数にfinalを使用すると、ガベージコレクションが改善されますか?
今日、私の同僚と私はfinal
、ガベージ コレクションを改善するために Java でキーワードを使用する方法について話し合いました。
たとえば、次のようなメソッドを記述した場合:
メソッド内で変数を宣言するfinal
と、ガベージ コレクションが、メソッドの終了後にメソッド内の未使用の変数からメモリをクリーンアップするのに役立ちます。
これは本当ですか?
java - Javaでローカル変数とメソッドパラメータを「最終」としてマークするのはなぜですか?
Java では、ローカル変数とメソッド パラメータを final キーワードで修飾できます。
これを行うと、メソッドの本体で x と qwerty を再割り当てできなくなります。
このプラクティスは、一般的にプラスと見なされる不変性の方向にコードを微調整します。ただし、「最終」がいたるところに表示されてコードが乱雑になる傾向もあります。Java のローカル変数とメソッド パラメータの final キーワードについてどう思いますか?
java - Javaで同等のc++定数ポインタを取得するには?
不変型オブジェクト (String、Integer、..) を final としてメソッドに渡すと、C++ 定数ポインターの文字を実現できます。しかし、変更可能なオブジェクトでそのような動作を強制するにはどうすればよいでしょうか?
私が望むのは、someType を変更せずに someMethod が someObject の状態を変更できないようにすることだけです。これは可能ですか?