Java,创建并修改作为参数传递给新对象构造函数的对象
我相对来说是java的初学者,我正在学习GoogleWebToolkit(GWT)。我在他们的教程中看到了这个代码片段。我不明白发生了什么事。我似乎正在为一个新的按钮对象在构造函数中创建一个ClickHandler对象,而在ClickHandler对象中我们正在重写onClick方法?这就是它正在做的吗?我们可以添加更多这种风格的方法,还是只修改现有的方法Java,创建并修改作为参数传递给新对象构造函数的对象,java,gwt,Java,Gwt,我相对来说是java的初学者,我正在学习GoogleWebToolkit(GWT)。我在他们的教程中看到了这个代码片段。我不明白发生了什么事。我似乎正在为一个新的按钮对象在构造函数中创建一个ClickHandler对象,而在ClickHandler对象中我们正在重写onClick方法?这就是它正在做的吗?我们可以添加更多这种风格的方法,还是只修改现有的方法 package com.google.gwt.sample.hello.client; import com.google.gwt
package com.google.gwt.sample.hello.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Hello World application.
*/
public class Hello implements EntryPoint {
public void onModuleLoad() {
Button b = new Button("Click me", new ClickHandler() {
public void onClick(ClickEvent event) {
Window.alert("Hello, AJAX");
}
});
RootPanel.get().add(b);
}
}
谢谢这就是所谓的匿名课程
ClickHandler
是一个接口-要实现它,需要定义onClick
方法。在这个代码示例中,ClickHandler
的一个匿名子类被创建为一次性的,并传递给按钮
构造函数的第二个参数
在回答问题的第二部分时,如果愿意,您可以向匿名类添加更多方法,但是没有什么理由,因为按钮
类将不知道调用任何未由ClickHandler定义的方法(它将不能,因为它只有一个类的引用作为ClickHandler
)
以下是有关匿名类的更多信息的链接:以下类是动态创建的(没有任何名称):
类的名称不是AnnonymousClickHandler
,我只是编了一个名称来展示一个示例
class AnnonymousClickHandler implements ClickHandler
{
public void onClick(ClickEvent event) {
Window.alert("Hello, AJAX");
}
}