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)  这一句了
     
  • 相关阅读:
    实验五
    实验一
    实验四
    实验三
    实验8 SQLite数据库操作
    实验7 BindService模拟通信
    实验6 在应用程序中播放音频和视频
    实验5 数独游戏界面设计
    实验4 颜色、字符串资源的使用
    实验五 存储管理实验
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/7339375.html
Copyright © 2011-2022 走看看