Lambda表达式在Android中的基本使用

Lambda定义

Lambda表达式是java8中新引入的特色功能。Lambda表达式本质上是一种匿名方法,它既没有方法名,也既没有访问修饰符和返回类型,使用它来编写代码将会更加简洁,也更加易读。

Android中使用Lamdda表达式的配置

需要在app/build.gradle中添加如下配置:

android{
       ...
       defaultConfig{
           ...
           jackOptions.enabled=true
       }
       compileOptions{
           sourceCompatibility JavaVersion.VERSION_1_8
           targetCompatibility JavaVersion.VERSION_1_8
       }
       ...
   }

通过代码实例分析Lambda使用规则

  • 代码实例1
new Thread(new Runable(){
    @Override
    public void run(){

    }
}).start();

//使用Lambda表达式写法
new Thread(() ->{

}).start();

说明:只有一个待实现方法的接口,可以使用Lambda表达式

  • 代码实例2
public interface MyListener{
    String doSomething(String a,int b);
}
MyListener listener=new MyListener(String a,String b){
    String result=a+b;
    return result;
}
//使用Lambda表达式写法
MyListener listener=(String a,String b) ->{
    String result=a+b;
    return result;
}

说明:Lambda表达式创建MyListener接口的匿名实现方法,方法中的参数直接写在括号中就可以。

  • 代码实例3
public interface MyListener{
    String doSomething(String a,int b);
}
MyListener listener=new MyListener(String a,String b){
    String result=a+b;
    return result;
}
//使用Lambda表达式写法
MyListener listener=( a, b) ->{
    String result=a+b;
    return result;
}

说明:除了实例2中的写法,java还可以自动推断出参数a是String类型,参数b是int类型,这样参数类型都可以不用写了。这是两个参数,当只有一个参数的时候,括号也可以去掉。

Android实际开发中的应用

  • 接口的实现

    上面实例中已有提到。

  • 按钮点击事件

//传统按钮点击事件
button.setOnClickListener(new View.OnClickListener(){
   @Override
   public void onClick(View v){

   }
});
//使用Lambda表达式之后
button.setOnClickListener(v ->{

});

总结

以上是Lambda表达式的基本使用,是不是感觉不错,精简。大家看完快去使用吧

你可能感兴趣的:(java基础)