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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读