zoukankan      html  css  js  c++  java
  • JAVA 函数式接口与c#委托对应关系(一)

    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委托

    using System;
    
    namespace ActionsDelegate
    {
        class Program
        {
            static void Main(string[] args)
            {
                Name name = new Name("Jeff");
                Action action = name.DisplayToConsole;
                action(); 
                Console.ReadKey();
            } 
        }
    }

    执行结果:输出一个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#委托达到的目的基本一样

  • 相关阅读:
    接口的显示实现和隐式实现
    Math.Round和四舍五入
    经典SQL语句大全(转)
    简明添加log4net到项目中
    NAnt学习笔记(3) Properties, Loggers & Listeners
    (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
    Pyramid中如何配置多种URL匹配同一个View
    《IT项目管理》读书笔记(4) —— 项目范围管理
    C#语法糖
    枚举类型转换成字符串
  • 原文地址:https://www.cnblogs.com/CnKker/p/5042513.html
Copyright © 2011-2022 走看看