写在前面
本系列博客是我在第二次学习安卓之后开始的系列博客(第一次就看了5天,了解了一下而已),可能新手不是太适合。因为我的这个安卓学习是用到哪里学到哪里,工作了之后没有时间去一点一点的看书了,所以工作的时候用到了哪里就学习哪里,如果没有时间的话就简单研究一下。总之我用到哪里就开一篇博客,如果你跟着这个博客学习,你也会和我一样,在实战中练习技术,希望大家喜欢。

Google 发布了Android studio之后,方便了开发,也让Gradle这个构建工具带到了安卓的开发中,但是美中不足的是:目前安卓只支持java7及其以下的语法。java8的到来,让我们感受到了lambda表达式的魅力。
那网上有没有大牛实现了某些构建插件来支持java8呢?或者支持部分功能呢?
首先加入

classpath 'me.tatarka:gradle-retrolambda:3.3.0-beta4'

然后再加入插件声明

apply plugin: 'me.tatarka.retrolambda'

好了现在支持lambda了
无图无真相

但是底层还是用的旧语法,不支持Stream啊。
我们不能满足仅仅这点,找找合适的第三方库

compile 'com.annimon:stream:1.0.8'

好了支持了,继续上截图

好了,很完美
但是,毕竟使用的是插件编译的(插件其实是把代码兼容到了1.6或者1.7的版本而已,所以看不到java8的很多库),所以有些地方支持的并不是很完美,例如default方法,以及引用接口的静态方法,都会编译失败或者程序报错,所以不要使用那些新功能哦。
Google已经宣布要使用openjdk了,期待它能把更新的java版本带到安卓的世界来,让我们的开发更加便捷和容易。
最后,照例上全部代码。
app的gradle

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'android {compileSdkVersion 23buildToolsVersion "23.0.3"defaultConfig {applicationId "xyz.cunzi.app.myapplication6"minSdkVersion 19targetSdkVersion 23versionCode 1versionName "1.0"}compileOptions{sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}
}dependencies {compile fileTree(include: ['*.jar'], dir: 'libs')testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23.2.1'compile 'com.annimon:stream:1.0.8'
}

project的gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.1.0-alpha4'classpath 'me.tatarka:gradle-retrolambda:3.3.0-beta4'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {jcenter()}
}task clean(type: Delete) {delete rootProject.buildDir
}

安卓快速入门系列1(通过插件使用java8的语法)相关推荐

  1. RHEL8.0快速入门系列笔记--理论知识储备(一)

    RHEL8.0快速入门系列笔记–理论知识储备(一) 红帽公司发布Linux8.0系统已经有一段时间,最近准备学习关于RHEL8.0的相关新特性.根据官方介绍:RHEL8.0在云/容器化工作负载方面做了 ...

  2. 视频教程-Unity快速入门系列课程(第2部)-Unity3D

    Unity快速入门系列课程(第2部) 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过程.软件架构设计理 ...

  3. 【物体检测快速入门系列 | 03】Windows部署Docker GPU深度学习开发环境

    这是机器未来的第3篇文章 原文首发链接:https://blog.csdn.net/RobotFutures/article/details/124815912 1. 概述 在<物体检测快速入门 ...

  4. c# wpf listbox 高度_WPF快速入门系列(1)——WPF布局概览

    一.引言 关于WPF早在一年前就已经看过<深入浅出WPF>这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中 ...

  5. WPF快速入门系列(6)——WPF资源和样式

    WPF快速入门系列(6)--WPF资源和样式 一.引言 WPF资源系统可以用来保存一些公有对象和样式,从而实现重用这些对象和样式的作用.而WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一 ...

  6. python r转义_Python快速入门系列之二:还学不会我直播跪搓衣板

    Python作为一个,目前最火的编程语言之一,已经渗透到了各行各业.它易学好懂,拥有着丰富的库,功能齐全.人生苦短,就用Python. 这个快速入门系列分为六篇,包含了Python大部分基础知识,每篇 ...

  7. 2021-08-26 转载 Scala快速入门系列博客文章

    作者:Huidoo_Yang 出处:http://www.cnblogs.com/yangp/ 本文版权归作者Huidoo_Yang和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面 ...

  8. 树莓派从零开始快速入门系列汇总

    树莓派从零开始快速入门系列汇总 树莓派从零开始快速入门第0讲--环境安装 树莓派从零开始快速入门第1讲--命令行 树莓派从零开始快速入门第2讲--更换国内源 树莓派从零开始快速入门第3讲--文件编辑 ...

  9. 【物体检测快速入门系列 | 01 】基于Tensorflow2.x Object Detection API构建自定义物体检测器

    这是机器未来的第1篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/124745966 CSDN话题挑战赛第1期 活动详情地址 ...

最新文章

  1. metaweblog php,[PHP]利用MetaWeblog API实现XMLRPC功能
  2. ECMAScript5.1的运算符、类型转换总结
  3. 联想记忆计算机网络,什么是双向联想记忆神经网络
  4. java zoneoffset,java - 如何在java8中获取默认的ZoneOffset? - SO中文参考 - www.soinside.com...
  5. Spark : ContextCleaner清理器
  6. 第一批做移动开发的程序员,现在怎么样了?
  7. CentOS7下初始化PostgreSQL
  8. 用Excel做一个案例分析
  9. 音视频基础之YUV格式
  10. ar ebs 销售订单关闭_本周大新闻|《哈利波特》AR游戏玩法公开,谷歌关闭VR影视部门...
  11. 2.Button按钮实例:普通按钮和图片按钮
  12. SPI读取NRF24L01
  13. 多文件批量下载打包成.zip
  14. 指令系统由计算机组成决定,《计算机组成原理》第5章指令系统.ppt
  15. PC的ARM的安全启动
  16. 使用python获取微医数据
  17. 阿里又开始裁员了,这次是...
  18. FlashFXP,flashfxp怎么上传文件
  19. 问题三十一: 输入一个三位数n,判断输出n是否为水仙花数。 若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33)。
  20. 四篇文章带你快速入门Jetpck(中)之ViewModel,DataBinding

热门文章

  1. 论文笔记:m6Acorr: an online tool for the correction and comparison of m6A methylation profiles
  2. [已解决]mysql查询一周内的数据,解决一周的起始日期是从星期日(星期天|周日|周天)开始的问题
  3. 云浮农村生活污水处理设备——水生态环境保护“十四五”规划
  4. 【UML】UML基本概念
  5. 微服务失败重试(2)AWS 消息服务选型对照表
  6. [NCTF 2018]签到题
  7. NLP任务中, 被pad和unk的向量应该赋值为zero还是random呢?
  8. DataStream API【1】
  9. Python爬虫入门指南
  10. 2021年煤矿安全监测监控模拟试题及煤矿安全监测监控理论考试