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)  这一句了
     
  • 相关阅读:
    福大软工 · 第十次作业
    最终作业:软工实践个人总结
    第三视角Beta答辩总结
    Beta 冲刺(7/7)
    Beta 冲刺 (6/7)
    Beta 冲刺 (5/7)
    Beta 冲刺 (4/7)
    Beta 冲刺 (3/7)
    Beta 冲刺 (2/7)
    福大软工 · 第十次作业
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/7339375.html
Copyright © 2011-2022 走看看