java8新特性lambda函数很好用,但是有个限制,就是当Lambda函数内部使用外部的变量时,虽然不要求外部变量要用final修饰,却也不允许该外部变量被修改,这是为何呢?
这是因为lambda函数内使用外部变量时,并不是使用引用,而是把变量的值拷贝了一份放到自己作用域中。所以如果变量之后被修改,会造成混乱,因此外部变量虽然不需要用final修饰,但也不允许被修改。
java8新特性lambda函数很好用,但是有个限制,就是当Lambda函数内部使用外部的变量时,虽然不要求外部变量要用final修饰,却也不允许该外部变量被修改,这是为何呢?
这是因为lambda函数内使用外部变量时,并不是使用引用,而是把变量的值拷贝了一份放到自己作用域中。所以如果变量之后被修改,会造成混乱,因此外部变量虽然不需要用final修饰,但也不允许被修改。