問題タブ [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 投票する
8 に答える
5769 参照

java - Javaの再帰アルゴリズムで「完了したこと」のカウントを維持する方法は?

文字列を 1 文字ずつ処理し、それを解析してツリーのような構造を作成する再帰アルゴリズムがあります。パーサーが現在いる文字インデックスを追跡できるようにしたいのですが (他の何よりもエラーメッセージについて)、複数の返された型を処理するタプルのようなものを実装することに熱心ではありません。

メソッドの外側で宣言され、再帰メソッドに渡された Integer 型を使用しようとしましたが、それは最終的なものであるため、戻ったときに再帰呼び出しのインクリメントは「忘れられます」。(整数値の増分により、値渡しオブジェクトの参照ポイントが新しいオブジェクトになるため)

私のコードを汚染しないような仕事に似たものを得る方法はありますか?

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

java - 不変クラスは最終的なものにする必要がありますか?

この記事では次のように述べています。

不変であるためクラスをfinalにすることは、そうする正当な理由です。

私はこれに少し困惑しています...スレッドセーフとシンプルさのPOVから不変性は良いことだと理解していますが、これらの懸念は拡張性とはやや直交しているようです。では、不変性がクラスを final にする正当な理由になるのはなぜでしょうか?

0 投票する
15 に答える
56864 参照

java - メソッド パラメータとローカル変数に final を使用する必要があるのはいつですか?

可能な限り使用することを提案するいくつかの参照 (たとえばfinal) を見つけましたが、それがどれほど重要か疑問に思っています。これは主に、最終的なメソッドやクラスではなく、メソッド パラメーターとローカル変数のコンテキストにあります。定数の場合、それは明らかに理にかなっています。

一方では、コンパイラーはいくつかの最適化を行うことができ、プログラマーの意図をより明確にします。一方、冗長性が追加され、最適化は簡単になる場合があります。

それは私が覚えておくために努力すべきことですか?

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

java - Javaで代数型を実装する方法はありますか?

Java で、クラスが特定のサブクラスのセットを持ち、他のクラスを持たないようにすることは可能ですか? 例えば:

A の他のサブクラスを作成できないように強制することはできますか?

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

java - Javaの最終定数をオーバーライドできるのはなぜですか?

Javaの次のインターフェースについて考えてみます。

そして次のクラス:

クラスAがやって来て、インターフェイスIの最終定数をオーバーライドできるのはなぜですか?

自分で試してみてください:

0 投票する
11 に答える
65435 参照

java - Javaで継承を禁止する正当な理由は?

Java で継承を禁止する正当な理由は何ですか?たとえば、最終クラスを使用するか、単一のプライベート パラメーターなしのコンストラクターを使用するクラスを使用することによりますか? メソッドを final にする正当な理由は何ですか?

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

java - Javaでメソッドパラメータをfinalと宣言するパフォーマンス上の理由はありますか?

Javaでメソッドパラメータをfinalと宣言するパフォーマンス上の理由はありますか?

次のように:

対:

barは読み取り専用であり、変更されることはないと仮定しfoo()ます。

0 投票する
15 に答える
50330 参照

java - Javaで変数にfinalを使用すると、ガベージコレクションが改善されますか?

今日、私の同僚と私はfinal、ガベージ コレクションを改善するために Java でキーワードを使用する方法について話し合いました。

たとえば、次のようなメソッドを記述した場合:

メソッド内で変数を宣言するfinalと、ガベージ コレクションが、メソッドの終了後にメソッド内の未使用の変数からメモリをクリーンアップするのに役立ちます。

これは本当ですか?

0 投票する
12 に答える
113217 参照

java - Javaでローカル変数とメソッドパラメータを「最終」としてマークするのはなぜですか?

Java では、ローカル変数とメソッド パラメータを final キーワードで修飾できます。

これを行うと、メソッドの本体で x と qwerty を再割り当てできなくなります。

このプラクティスは、一般的にプラスと見なされる不変性の方向にコードを微調整します。ただし、「最終」がいたるところに表示されてコードが乱雑になる傾向もあります。Java のローカル変数とメソッド パラメータの final キーワードについてどう思いますか?

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

java - Javaで同等のc++定数ポインタを取得するには?

不変型オブジェクト (String、Integer、..) を final としてメソッドに渡すと、C++ 定数ポインターの文字を実現できます。しかし、変更可能なオブジェクトでそのような動作を強制するにはどうすればよいでしょうか?

私が望むのは、someType を変更せずに someMethod が someObject の状態を変更できないようにすることだけです。これは可能ですか?