84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
図に示すように、etotalPrice を外部で定義し、この値を 2 つの for ループで変更しようとしましたが、エラーが報告されました。それ?(NumberUtil.add と mutiplyu は、小数点以下 2 桁を保持する基本的なメソッドです)
欢迎选择我的课程,让我们一起见证您的进步~~
Java の古典的な書籍「Effective Java」と「Java Concurrency in Practice」では、変数参照リークとも呼ばれる匿名関数での変数参照がスレッドの安全性の問題を引き起こす可能性があるとマスターが述べています。匿名クラス内のローカル変数の場合は、final、つまり不変オブジェクトとして宣言する必要があります。
Java8 はここに構文シュガーを追加します。ラムダ式と匿名クラス内で、ローカル変数が参照される場合、それは直接 Final として扱われます。
このコードをリファクタリングすることをお勧めします。ラムダを使用して値を返し、それを外部変数に割り当てます。
これは、ラムダ式の totalPrice が Final 型である必要があることを意味します。final 型は初期化後に変更できないため、totalPrice に値を再度代入するとエラーになります。したがって、値を totalPrice に再度コピーするのではなく、変数を再定義して新しい値を保存する必要があります。変数を変更できない場合は、ラムダ式を使用しないでください。
最終的には、もちろん不変です。変更する必要がある場合は、ラムダを使用しないでください。ラムダを使用する場合は、値を変更しないでください。
Java の古典的な書籍「Effective Java」と「Java Concurrency in Practice」では、変数参照リークとも呼ばれる匿名関数での変数参照がスレッドの安全性の問題を引き起こす可能性があるとマスターが述べています。匿名クラス内のローカル変数の場合は、final、つまり不変オブジェクトとして宣言する必要があります。
Java8 はここに構文シュガーを追加します。ラムダ式と匿名クラス内で、ローカル変数が参照される場合、それは直接 Final として扱われます。
このコードをリファクタリングすることをお勧めします。ラムダを使用して値を返し、それを外部変数に割り当てます。
これは、ラムダ式の totalPrice が Final 型である必要があることを意味します。final 型は初期化後に変更できないため、totalPrice に値を再度代入するとエラーになります。したがって、値を totalPrice に再度コピーするのではなく、変数を再定義して新しい値を保存する必要があります。変数を変更できない場合は、ラムダ式を使用しないでください。
最終的には、もちろん不変です。変更する必要がある場合は、ラムダを使用しないでください。ラムダを使用する場合は、値を変更しないでください。