Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java,创建并修改作为参数传递给新对象构造函数的对象_Java_Gwt - Fatal编程技术网

Java,创建并修改作为参数传递给新对象构造函数的对象

Java,创建并修改作为参数传递给新对象构造函数的对象,java,gwt,Java,Gwt,我相对来说是java的初学者,我正在学习GoogleWebToolkit(GWT)。我在他们的教程中看到了这个代码片段。我不明白发生了什么事。我似乎正在为一个新的按钮对象在构造函数中创建一个ClickHandler对象,而在ClickHandler对象中我们正在重写onClick方法?这就是它正在做的吗?我们可以添加更多这种风格的方法,还是只修改现有的方法 package com.google.gwt.sample.hello.client; import com.google.gwt

我相对来说是java的初学者,我正在学习GoogleWebToolkit(GWT)。我在他们的教程中看到了这个代码片段。我不明白发生了什么事。我似乎正在为一个新的按钮对象在构造函数中创建一个ClickHandler对象,而在ClickHandler对象中我们正在重写onClick方法?这就是它正在做的吗?我们可以添加更多这种风格的方法,还是只修改现有的方法

    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");
    } 
}