C# Action委托 VS JAVA Action 接口函数

1、c#:Action

封装一个方法,该方法不具有参数并且不返回值。

构造实体类类

  1. using System;
  2.  
  3. namespace ActionsDelegate
  4. {
  5. public class Name
  6. {
  7. private string instanceName;
  8.  
  9. public Name(string name)
  10. {
  11. this.instanceName = name;
  12. }
  13.  
  14. public void DisplayToConsole()
  15. {
  16. Console.WriteLine(this.instanceName);
  17. }
  18. }
  19. }
  1. using System;
  2.  
  3. namespace ActionsDelegate
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. Name name = new Name("Jeff");
  10. Action action = name.DisplayToConsole;
  11. action();
  12. Console.ReadKey();
  13. }
  14. }
  15. }

调用Action委托

  1. using System;
  2.  
  3. namespace ActionsDelegate
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. Name name = new Name("Jeff");
  10. Action action = name.DisplayToConsole;
  11. action();
  12. Console.ReadKey();
  13. }
  14. }
  15. }

执行结果:输出一个Jeff字符串

2、JAVA:

java没有标准的Action接口,有些文章说可以用Runnable替代,但是Runnable是的run是运行在线程之上的,我们在这构造一个JAVA的接口函数

  1. @FunctionalInterface
  2. public interface Action {
  3. void accept();
  4. default Action andThen(Action after) {
  5. Objects.requireNonNull(after);
  6. return () -> { accept(); after.accept(); };
  7. }
  8. }

构造实体类

  1. public class Name {
  2.  
  3. private String instanceName;
  4.  
  5. public Name(String name) {
  6. this.instanceName = name;
  7. }
  8.  
  9. public void DisplayToConsole() {
  10. System.out.println(this.instanceName);
  11. }
  12. }

调用Action接口函数

  1. public class TestFunction {
  2. public static void main(String args[]){
  3. Name name=new Name("Jeff");
  4. Action action=()->name.DisplayToConsole();
  5. action.accept();
  6. }
  7. }

执行结果:输出一个Jeff字符串

总结:

这样JAVA接口函数与C#委托达到的目的基本一样

JAVA 函数式接口与c#委托对应关系(一)的更多相关文章

  1. Java 函数式接口

    目录 Java 函数式接口 1. 函数式接口 1.1 概念 1.2 格式 1.3 函数式接口的使用 2. 函数式编程 2.1 Lambda的延迟执行 性能浪费的日志案例 使用Lambda表达式的优化 ...

  2. Java函数式接口Consumer

    Consumer是java8提供的函数式接口之一,意思为消费者,接受参数而不返回值 void accept(T t); default Consumer<T> andThen(Consum ...

  3. Java 函数式接口 lambda

    import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class Demo1 { ...

  4. Java函数式接口Function

    Function 提供了一个抽象方法  R apply(T t) 接收一个参数 返回 一个值,还有两个默认方法和一个静态方法 compose 是一个嵌套方法,先执行before.apply() 得到运 ...

  5. Java函数式接口

    函数式接口定义且只定义了一个抽象方法.函数式接口的抽象方法的签名称为函数描述符.Java 8的java.util.function包中引入了几个新的函数式接口. 1.Predicate java.ut ...

  6. Java函数式接口与Lambda表达式

    什么是函数式接口? 函数式接口是一种特殊的接口,接口中只有一个抽象方法. 函数式接口与Lambda表达式有什么关系? 当需要一个函数式接口的对象时,可以提供一个lambda表达式. package l ...

  7. Java8 函数式接口-Functional Interface

    目录 函数式接口: JDK 8之前已有的函数式接口: 新定义的函数式接口: 函数式接口中可以额外定义多个Object的public方法一样抽象方法: 声明异常: 静态方法: 默认方法 泛型及继承关系 ...

  8. Java 8中一些常用的全新的函数式接口

    这一篇属于菜鸟级博客,只是介绍了一些在Java 8中新出现的一些很有用的接口,通过一些简单的例子加以说明,没有深入地阐述. 函数式接口 什么是函数式接口? 函数式接口,@FunctionalInter ...

  9. Java 8新特性-1 函数式接口

    Java 8 引入的一个核心概念是函数式接口(Functional Interfaces). 通过在接口里面添加一个抽象方法,这些方法可以直接从接口中运行. 如果一个接口定义个唯一一个抽象方法,那么这 ...

随机推荐

  1. ECSHOP首页调用指定分类下的商品

    转:http://bbs.ecshop.com/thread-1123207-1-1.html 调用某个分类下的商品,方法有很多种的,不过都需要先在后台设置模板那里设置显示和显示条数, 然后在需要调用 ...

  2. 最短路(数据处理):HDU 5817 Ice Walls

    Have you ever played DOTA? If so, you may know the hero, Invoker. As one of the few intelligence car ...

  3. QT5.1在Windows下 出现QApplication: No such file or directory 问题的解决办法

    QT5.0.1在Windows下 出现QApplication: No such file or directory 问题的解决办法 分类: 编程语言学习 软件使用 QT编程学习2013-03-07 ...

  4. vijosP1687 细菌总数

    vijosP1687 细菌总数 链接:https://vijos.org/p/1687 [思路] 错排公式+高精度. 题目要求排列数目而且不能有Pi==i的情况出现,可以看出这正是1,2,3,4,5, ...

  5. [ZETCODE]wxWidgets教程五:布局管理

    本教程原文链接:http://zetcode.com/gui/wxwidgets/layoutmanagement/ 翻译:瓶哥 日期:2013年12月4日星期三 邮箱:414236069@qq.co ...

  6. 4 weekend110的hdfs下载数据源码跟踪铺垫 + hdfs下载数据源码分析-getFileSystem(值得反复推敲和打断点源码)

    Hdfs下载数据源码分析 在这里,我是接着之前的,贴下代码 package cn.itcast.hadoop.hdfs; import java.io.FileInputStream; import ...

  7. 利用图片延迟加载来优化页面性能(jQuery)

    图片延迟加载也称懒加载,常用于页面很长,图片很多的页面,以电子商务网站居多,比如大家常上的京东,淘宝,页面以图居多,整个页面少说几百K,多则上兆,如果想一次性加载完成,不仅用户要哭了,服务器也得哭了. ...

  8. [C#] 常用工具类——直接在浏览器输出数据

    /// <summary> /// <para> </para> /// 常用工具类——直接在浏览器输出数据 /// <para> ---------- ...

  9. Cocos2d-js 3.0 alp2 使用指南

    Download Cocos2d-JS: http://www.cocos2d-x.org/download Unzip and copy to C:/ Download JDK: http://ww ...

  10. jquerymobile知识点:button与a

    首先先上一段代码: <a href="#" data-role="button" onclick="change();" id=&qu ...