简单的答案是,由于
final变量和“有效最终”变量之间没有区别,除了
final声明中的关键字外,唯一的目的是允许省略
final关键字。
但这可能会产生比您所意识到的更大的影响。
对于lambda表达式,可以像中那样简化参数的整个声明
x -> x+1。现在考虑嵌套的lambda表达式,例如:
x -> y ->x+y和如果我们在此处强制向参数添加
final声明将创建的视觉混乱
x。
由于没有Java语法将变量声明为
final未指定其类型,因此它要么要求规范向语言添加甚至更复杂的结构,要么强制我们添加
final参数,并向将简单表达式
x-> y -> x+y转换为的参数添加类型声明
(final double x) -> y -> x+y。
主要目标是 简化
Java程序员(在添加新的编程语言功能时,尽可能做到这一点)。当然,它没有为语言提供任何功能来解决以前没有它无法解决的问题(这对整个lambda功能都适用),但是在表达能力上有显着的收获,不仅因为您可以省略
final修饰符,而且可以省略修饰符帮助。它的工作原理
一起 使用改进的类型推断,新的编程API,当然,lambda表达式和方法的引用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)