###知りたいこと
ラムダ式について勉強しています。
変数のスコープについて、
外部の変数をラムダ式で参照するとき、変数はFinalもしくは実質的Finalでなければならないことを確認しました。
java
1Integer in = 4; 2MyLambda s = s= a -> a > in++; //コンパイルエラー 3in = 1; // コンパイルエラー 4 5@FunctionalInterface 6interface MyLambda { 7 boolean range(Integer integer); 8}
変数を配列にするとラムダ式内で変更が可能になるということもネットで知り、確かめました。
java
1 2Integer[] inte = { 4 }; 3MyLambda ss = a -> a > inte[0]++; // ラムダ式外部に定義された配列の値は変更可能 4inte[0] = 1; //これもいける
このようなことができるのは、配列とラッパークラスの何が違うためでしょうか。
理由を知っている方がいらっしゃいましたら教えていただきたいです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/30 09:34