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)  这一句了
     
  • 相关阅读:
    宏任务、微任务与Event Loop
    puppteer的使用
    docker的使用 -- windows
    vscode集成eslint
    删除git中无用的大文件
    git 使用
    利用chrome devtool 观察页面占用内存
    JS对象-不可扩展对象、密封对象、冻结对象
    数学
    素数 + 背包
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/7339375.html
Copyright © 2011-2022 走看看