Lambda表达式是基于函数的编程语言,主要作用于匿名函数,可以大大提高代码的可读性和代码的简洁程度。读音和数学上的λ相同。
在Android中的一般写法
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"点击了button",Toast.LENGTH_SHORT)
}
});
new Thread(new Runnable() {
@Override
public void run() {
Log.e("MainActivity.java","runing thread");
}
}).start();
使用lambda表达式之后
button.setOnClickListener(view -> Toast.makeText(MainActivity.this,"点击了button",Toast.LENGTH_SHORT).show());
new Thread(() -> Log.e("MainActivity.java","runing thread lambda")).start();
看到这里你是否已经爱上了lambda表达式了呢?不要着急,慢慢来,由于lambda表达式是在java8过后发布的,所以我们要在app下的bulid.gradle文件下配置一下
//jdk1.8之后
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
很多网上的小伙伴说要配置defaultConfig { jackOptions { enabled=true } },但是我在使用Android studio4.0版本之后发现这个jack已经过时了,所以编译器会报Cause: invalid type code: B6之类的错误。大概意思就是无效代码。