• java 回调函数很好懂


    首先先介绍回调函数的概念。比如客户端client,想要调用服务器端server的某个函数为你提供服务。比如炒西红柿炒蛋,cookTomato() 这时候,服务器端说,你先付钱才能为你服务,这时候服务器端要调用客户端的getMoney().才能为你继续服务。这里的getMoney就是回调函数了。而且这}getMoney()方法是一个接口方法,因为客户端只要给钱就好,不管是人民币还是美元,我都接受。

    public interface Money(){

    //要被回调的方法

    void float getMoney();

    }

    public class Server {     //用Money接口作为参数  public boolean cookTomatoWithEgg(Money money){   System.out.println("有人要西红柿操蛋了,先给我钱,8元以上我才给你炒");     if( money.getMoney() >= 8){      System.out.println("开始洗西红柿");    System.out.println("开始炒菜");    System.out.println("完成了");    return true;   }       return false;  }     }

    public class Client {     //吃中饭了想要西红柿操蛋,  public static void haveLunch(Server server){     boolean result = server.cookTomatoWithEgg(new Money() {       @Override    public float getMoney() {     System.out.println("回调方法,我付5元,人民币");     return 5;    }   });     if(!result){    System.out.println("钱不够");   }          result = server.cookTomatoWithEgg(new Money() {       @Override    public float getMoney() {     System.out.println("回调方法,我付10元,人民币");     return 10;    }   });          if(result){     System.out.println("终于吃到吃西红柿操蛋");    }  }      /**   * @param args   */  public static void main(String[] args) {   Client client = new Client();   Server server = new Server();   client.haveLunch(server);

     }

    }

    分享:http://jxg198168.iteye.com/blog/1885921

  • 相关阅读:
    鼠标滑动显示层
    软件过程+改进 +UML
    接口和抽象类的区别
    SQL SERVER – Difference Between EXEC and EXECUTE vs EXEC() – Use EXEC/EXECUTE for SP always
    XDocument.Parse Method (String)
    Robocopy use case
    Two Solutions to fix issue: ORDER BY items must appear in the select list if the statement contains a UNION, ...
    [转载]:SQL Server 连接字符串和身份验证
    Insert Data From One Table to Another
    volatile (C# Reference)
  • 原文地址:https://www.cnblogs.com/lippeixian/p/5027316.html
Copyright © 2020-2023  润新知