zoukankan      html  css  js  c++  java
  • 在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());
        }
    
    
    }
  • 相关阅读:
    QTP11安装包 免费汉化版 / QTP11破解版下载
    linux查看操作系统版本、内存信息
    Oracle 性能优化总结
    CV-物体检测-tensorflow
    pytest使用-文火微烹pytest
    高科技通缩和比特币投资
    格局观修炼
    陈春花推荐的三本书是什么 back to basic -- management
    长期价值主义
    参与感,对于一个人究竟有多重要?
  • 原文地址:https://www.cnblogs.com/rainboy2010/p/6476076.html
Copyright © 2011-2022 走看看