首页 青云排行榜 知识中心 控制台

请看下列代码:(     )

public class UserRequest {
    public void request(ServletAction action) {
        action.doService(); 
    }
    public static void main(String[] args) {
        UserRequest user = new UserRequest();
        user.request(new ServletAction() {
            public void doService() {
                System.out.println("处理请求");
            } 
        });
    }
}

如果上述代码采用回调模式编写,下列关于ServletAction的定义正确的是:

public static class ServletAction {
    public void doService();
}
public final class ServletAction {
    public void doService();
}
public class ServletAction {
    public void doService();
}
public interface ServletAction {
    public void doService();
}
在Java中,实现回调的方式有以下几种:
1. 接口回调:定义一个接口,在接口中声明一个或多个方法,在需要回调的地方调用该接口中的方法,然后由回调方实现该接口,完成回调操作。
2. 继承回调:通过继承关系,在父类中定义一个回调方法,子类继承父类并重写回调方法,在需要回调的地方调用子类的方法,完成回调操作。
3. 事件回调:在事件源上注册事件监听器,当事件触发时,事件源会通知已注册的监听器,监听器会执行相应的回调操作。
4. Lambda 表达式回调:在需要回调的地方使用 Lambda 表达式代替接口实现,简化了接口回调的实现过程。
5. 回调类回调:定义一个回调类,在需要回调的地方调用该类的方法,然后由回调方继承该类并重写回调方法,完成回调操作。

上述答案中,class都存在问题,方法都没有方法体,明显无法通过编译,故只有interface是正确的。
关于我们
公司简介
联系我们
联系我们
售前咨询: leizhongnan@eval100.com
售后服务: 0755-26415932
商务合作: support@eval100.com
友情链接
金蝶软件
快递100
关注我们
Copyright © 2023-2023 深圳慧题科技有限公司 粤ICP备2023109746号-1 粤公网安备44030002001082