zoukankan      html  css  js  c++  java
  • JDK8 Lambda表达式对代码的简化

    只是举个例子:

          

    public class LambdaDemo {
        
        public static String findData( String name , LambdaInterface finder){
                                            
              return finder.getValue( name) ;
        }
    
    }
    public interface LambdaInterface {
        
        public String getValue(String key) ;
    
    }
    public class LambdaInterfaceTest {
        
        @Test
        public void test(){
            Map<String,String> map = new HashMap() ;
            map.put("a", "11") ;
            map.put("b", "22") ;
            
            String name = "a" ;
            System.out.println(LambdaDemo.findData(name, map::get) ) ;
        }
    
    }
    LambdaDemo.findData(name, map::get)这句代码其实完整形式是:

    @Test
        public void test1(){
            Map<String,String> map = new HashMap() ;
            map.put("a", "11") ;
            map.put("b", "22") ;
            
            
            
            String name = "a" ;
            System.out.println(LambdaDemo.findData(name,new LambdaInterface(){
    
                @Override
                public String getValue(String key) {
                    return map.get(key);
                }
                
            }) ) ;
        }

    由于 LambdaInterface 接口只有一个方法,且这个接口方法只有一个参数,且接口方法的实现只有一句代码,且这句代码只接收一个接口方法传入的参数,此时就符合Lambda表达式的精简要求了,所以

        

    LambdaDemo.findData(name,new LambdaInterface(){
    
                @Override
                public String getValue(String key) {
                    return map.get(key);
                }
                
            }) ;

    就可以简化成了
    LambdaDemo.findData(name, map::get)  这一句了
     
  • 相关阅读:
    多线程与MySQL(十)
    多进程与多线程(九)
    异常处理与网络编程(八)
    面向对象,绑定方法与异常处理(七)
    模块与对象(六)
    包与模块(五)
    迭代器与函数Python学习(四)
    函数与装饰器Python学习(三)
    数据库
    并发编程
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/7339375.html
Copyright © 2011-2022 走看看