对于实例,如何使用输入' hasTypedSomeToken'在我的Anonymou内部类中,如下 -
public class Login {
void display(boolean hasTypedSomeToken)
{
//some code here
Button btnLogIn = new Button("Login", new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if(Login.this.hasTypedSomeToken) //HOW TO USE hasTypedSomeToken HERE
{
//do something
}
}
}
}
答案 0 :(得分:3)
首先,您必须将其final
:
void display(final boolean hasTypedSomeToken)
然后您可以简单地将其称为hasTypedSomeToken
:
if (hasTypedSomeToken) ...
答案 1 :(得分:2)
您需要声明final
,例如此void display(final boolean hasTypedSomeToken)
,并使用它而不使用前缀:if(hasTypedSomeToken)
。
答案 2 :(得分:2)
制作变量final
:
public class Login {
void display(final boolean hasTypedSomeToken) {
Button btnLogIn = new Button("Login", new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (hasTypedSomeToken) {
// frob a widget
}
}
});
}
}
答案 3 :(得分:2)
方法中声明的变量是局部变量。例如hasTypedSomeToken
和btnLogIn
是display
方法中的局部变量。
如果你想在本地内部类中使用这些变量(在方法中定义的类,例如在你的情况下实现ClickHandler
的匿名类),那么你必须声明它们final
e.g。
void display(final boolean hasTypedSomeToken) {
如果查看Login.this.hasTypedSomeToken
,this
用于访问成员变量。局部变量不是类的成员。它们是仅在方法中存在的自动变量。