zoukankan      html  css  js  c++  java
  • Java回调方法的设计思路

     1 package com.test;
     2 /**
     3  * 回调方法的设计技巧,例如hibernate的getHibernateTemplate().execute(Handler h)方法
     4  */
     5 public class CallBackTest {
     6     public static void main(String[] args) {
     7         Service s =  new Service() ;
     8         //传入一个匿名的Handler实现类,重载执行的方法
     9         Object object = s.getEntity(new BackHandler() {
    10             @Override
    11             public Object execue(Event e) {
    12                 return e.getName() ;
    13             }
    14         }) ;
    15         System.out.println(object.toString());
    16     }
    17 }
    18 //回调类的实现接口,声明回调执行的方法
    19 interface BackHandler{
    20     //返回的类型需要和调用的service类方法一致,传入的参数是service类方法传入
    21     public Object execue(Event e) ;
    22 }
    23 //service类
    24 class Service{
    25     //传入Handler类型参数
    26     public Object getEntity(BackHandler h){
    27         Event e = new Event("callBack", 1) ;
    28         return h.execue(e) ;
    29     }
    30 }
    31 class Event{
    32     private String name ;
    33     private int status ;
    34     public Event(String n,int s){
    35         this.name = n ;
    36         this.status = s ;
    37     }
    38     public String getName() {
    39         return name;
    40     }
    41     public void setName(String name) {
    42         this.name = name;
    43     }
    44     public int getStatus() {
    45         return status;
    46     }
    47     public void setStatus(int status) {
    48         this.status = status;
    49     }
    50 }
  • 相关阅读:
    [苹果maccms] MACCMS苹果cms宝塔定时任务添加教程说明
    [苹果cmsV10]新版本演员库分类报无权限问题和解决方法!
    CentOS 6.8安装Python2.7.13
    [HOWTO] Install Sphinx for A Script Pro
    A Script Pro nginx URL重写规则无法播放MP4解决方法
    随机跳转
    UI库
    vuex
    vue 数据请求
    vue守卫、储存与路由模式
  • 原文地址:https://www.cnblogs.com/hfblogs/p/7381960.html
Copyright © 2011-2022 走看看