【发布时间】:2011-06-11 13:53:02
【问题描述】:
-
a在这里只能是最终的。为什么?如何在onClick()方法中重新分配a而不将其保留为私有成员?private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; } }); } -
点击后如何返回
5 * a?我的意思是,private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; return b; // but return type is void } }); }
【问题讨论】:
-
我不认为 Java 匿名类提供了你所期望的那种 lambda 闭包,但如果我错了,请有人纠正我......
-
你想达到什么目的?当“f”完成时,可以执行点击处理程序。
-
@Lambert 如果你想在 onClick 方法中使用 a 它必须是最终的
-
这就是我的意思——它不支持完全闭包,因为它不允许访问非最终变量。
-
注意:从 Java 8 开始,您的变量只需实际上是最终的
标签: java event-handling anonymous-class