在关于lambda和匿名类之间差异的一个论点中,在这篇文章中:
我读了一个声称"Lambdas可以拥有状态",就像匿名类实例一样.
据我所知,你不能添加专属于lambda的用户定义状态,因为没有办法在java lambda函数的实现上定义实例成员.
例如:
Runnable r= () -> { int x = 5; }; // defines a local - no way to define instance
Runnable r2 = new Runnable() {
int x; // defines state via instance member
@Override
public void run() {
// TODO Auto-generated method stub
}
};
Run Code Online (Sandbox Code Playgroud)
只是为了澄清,我并不是想将状态引入lambda,因为我认为这违背了意图.我只是想验证或反驳上述堆栈溢出问题上由信誉良好的来源做出的技术性声明.