【发布时间】:2012-06-22 18:31:27
【问题描述】:
我试图将一个方法作为参数传递给另一个类中的方法。该方法在第一个类中定义,另一个类的方法是静态的。看了会更容易理解:
设置
public class MyClass extends ParentClass {
public MyClass() {
super(new ClickHandler() {
public void onClick(ClickEvent event) {
try {
OtherClass.responseMethod(MyClass.class.getMethod("myMethod",Boolean.class));
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public void myMethod(Boolean success) {
if(success.booleanValue()) {
//do stuff
}
}
}
但是,当我尝试构建时,我收到以下错误:
错误
The method getMethod(String, Class<boolean>) is undefined for the type Class<MyClass>
问题不是没有找到myMethod,而是没有找到Class<MyClass>.getMethod,我也不知道为什么。
更新
我们已经重新编写了这部分代码,并且没有使用“getMethodorgetDeclaredMethod”。由于 npe 发现我正在做的事情存在一些问题,并付出了很多努力来寻找答案,所以我接受了这个答案。
【问题讨论】:
-
使用
Boolean而不是boolean。 -
您发布的代码无法编译,因为您将代码(try / OtherClass.responseMethod.... 东西)直接放在匿名类主体中。
-
为了记录,在我的代码中我没有忘记onClick方法,只是写在这里。现在已经固定在这里了。仍然出现同样的错误。
-
告诉我们你用什么编译它?因为现在它可以很好地与 Eclipse 和 JDK 1.6.0_26 一起编译。
-
真的吗?它在 ant 构建/编译中失败
标签: java class methods compiler-errors undefined