加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 8如何将非函数方法作为参数传递

发布时间:2020-12-15 04:36:28 所属栏目:Java 来源:网络整理
导读:参见英文答案 Java Pass Method as Parameter????????????????????????????????????15个 我有一个包含多种方法的类: Class SimpleClass { methodA(var1,var2) { //body } methodB(var1,var2) { //body } .... } 使用java 8 Lambda,我可以将上述方法之一作为
参见英文答案 > Java Pass Method as Parameter????????????????????????????????????15个
我有一个包含多种方法的类:

Class SimpleClass {
    methodA(var1,var2) {
      //body
    }

    methodB(var1,var2) {
      //body
    }
    ....

}

使用java 8 Lambda,我可以将上述方法之一作为参数发送到其他类的另一个函数中吗?如下所示:

Class Service {
   doService(Method arg) {
     //Invoke passed simple class method here
     arg()
   }

}

解决方法

如果doService具有适当的签名,您可以编写:

service.doService(mySimpleClass::methodA);

完整示例:

class SimpleClass {
  public void methodA(String a,String b) {
    System.out.println(a + b);
  }
  //other methods
}

class Service {
  public void doService(BiConsumer<String,String> consumer) {
    consumer.accept("Hel","lo");
  }
}

public static void main(String[] args) {
  SimpleClass sc = new SimpleClass();
  new Service().doService(sc::methodA); //prints Hello
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读