gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:38:30 24 4
gpt4 key购买 nike

我是 Java 的初学者,正在学习谷歌网络工具包 (GWT)。我在他们的教程中看到了这个代码片段。我不明白这是怎么回事。我似乎在构造函数中为新的 Button 对象创建了一个 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 是一个接口(interface) - 要实现它,您需要定义 onClick 方法。在此代码示例中,一次性创建了 ClickHandler 的匿名子类,并将其传递给 Button 构造函数的第二个参数。

在回答你问题的第二部分时,如果你愿意,你可以向匿名类添加更多方法,但是没有什么理由 Button 类不知道调用任何方法ClickHandler 未定义的方法(它不能定义,因为它仅将类引用为 ClickHandler)。

这里是关于匿名类的更多信息的链接:http://docstore.mik.ua/orelly/java-ent/jnut/ch03_12.htm

关于Java,创建并修改作为参数传递给新对象构造函数的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2166506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com