在Android Studio中使用Lambda表達式


Lambda表達式是Java 8的一個新特性,可以替代只有一個函數的接口實現,告別匿名內部類,代碼看起來更簡潔易懂。Lambda表達式同時還提升了對集合的迭代、遍歷、過濾數據的操作。那么在Android Studio中如何使用lambda表達式呢?

 

項目使用的jdk要為jdk 8或更高版本

 

修改build.gradle文件,enable jack和設置sourceCompatibility,targetCompatibility為jdk 8

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

 

 然后在項目中就可以愉快使用lambda表達式了,大家感受下:

public class TestActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        findViewById(R.id.button1).setOnClickListener(view -> onButton1());
        findViewById(R.id.button2).setOnClickListener(view -> onButton2());

    }

    public void onButton1() {
        Runnable runnable = () -> Toast.makeText(this, "abcd", Toast.LENGTH_SHORT).show();
        runnable.run();

    }

    public void onButton2() {

        Observable.from(Arrays.asList(1, 2, 3, 4, 5))
                .filter(integer -> integer % 2 == 0)
                .map(integer -> integer * integer)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(integer -> Toast.makeText(this, String.valueOf(integer), Toast.LENGTH_SHORT).show());
    }


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM