java類的定義 為什么Java中lambda表達式不能改變外部變量的值,也不能定義自己的同名的本地變量呢?
為什么Java中lambda表達式不能改變外部變量的值,也不能定義自己的同名的本地變量呢?Lambda表達式不能改變外部變量的值,即外部變量需要用final修改(java8必須用final顯式修改)。
為什么Java中lambda表達式不能改變外部變量的值,也不能定義自己的同名的本地變量呢?
Lambda表達式不能改變外部變量的值,即外部變量需要用final修改(java8必須用final顯式修改)。Lambda表達式只是匿名內部類的簡化表達式。Java方法參數傳遞是值傳遞(不是地址傳遞)。不能更改外部變量的值。這句話不能改變基本數據類型的值。對于其他類型的變量,可以更改存儲在變量中的值。Lambda表達式無法更改變量的指針值。這樣做的原因是為了延長外部變量的生命周期并保持數據同步。如果可以修改,lambda表達式中變量的值可能不是最新的,從而導致未知錯誤。