以前觉得java让人觉得有趣的一个特点是支持:匿名内部类,而最近发现jdk8已支持lambda并有更简便的方式,来实现匿名内部类. 这会让程序员更舒服,更喜欢java. 多年前觉得java语法和C#语法差得有点远,没有C#那么写来方便,现在觉得jdk8也很不错了。做技术还是要向前看。

final TextView txtView2 = (TextView)this.findViewById(R.id.txtView2);
Button btnChangeView = (Button)findViewById(R.id.btnChangeText); btnChangeView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtView2.setText("Text 改变");
}
});

新的实现方式:

final TextView txtView2 = (TextView)this.findViewById(R.id.txtView2);
Button btnChangeView = (Button)findViewById(R.id.btnChangeText); //btnChangeView.setOnClickListener(e -> Log.i("MyTag", "Button Clicked.") );
assert btnChangeView != null;
btnChangeView.setOnClickListener((view) -> {
Log.i(TAG, "btnChangeView Clicked:" + view.getId());
txtView2.setText("Text 改变:" + new Date().toString());
});

参考:

http://stackoverflow.com/questions/37004069/errorjack-is-required-to-support-java-8-language-features

http://www.jianshu.com/p/5fc2b3362702

需要更改配置: build.gradle

defaultConfig {
...
jackOptions
{
enabled
true
}
} compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "24.0.2" defaultConfig {
applicationId "com.firstapp.test.firstapp"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
jackOptions {
enabled true
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
} dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}

jdk 8 lambda表达式 及在Android Studio的使用示例的更多相关文章

  1. jdk1.8新特性之lambda表达式及在Android Studio中的使用举例

    Jdk1.8已经出很久了但是很多同学对它的特性在android studio 中的应用可能还不是很熟悉,今天我们就来对这个新特性在AS中做它的应用实践. 一.首先在有JDK1.8的情况下我们要在AS的 ...

  2. JDK中Lambda表达式的序列化与SerializedLambda的巧妙使用

    前提 笔者在下班空余时间想以Javassist为核心基于JDBC写一套摒弃反射调用的轻量级的ORM框架,过程中有研读mybatis.tk-mapper.mybatis-plus和spring-boot ...

  3. jdk 8 lambda表达式以及Predicate接口

    了解lambda之前先了解下什么是函数式接口,函数式接口即接口里必须有一个抽象方法(抽象的方法只能有一个,可以有其他的用default修饰的方法) jdk8里新增了一个@FunctionalInter ...

  4. Android必知必会-Android Studio下配置和使用Lambda

    移动端如果访问不佳,请访问–>Github版 背景 和朋友讨论 JAVA8 的新特性,聊到Lambda,正好在掘金上看到一篇相关的文章,结合资料,作一个总结,特别是记录下实际使用中遇到的问题. ...

  5. lambda表达式

    什么是Lambda表达式 lambda表达式,它将允许我们将行为传到函数里.在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出 ...

  6. Error:Could not determine Java version-- 关于Android Studio JDK设置和JVM version设置

    最近在装AS的时候遇到一个问题,新建工程后,编译报错,Error:Could not determine Java version 不言而喻:可定是JDK的问题,网上查到2中可能性 第一:就是JDK路 ...

  7. Android开发环境部署:JDK+Android Studio

    1. 刚开始接触Android开发,首先需要为你的电脑安装java JDK(Java开发工具包),不管是用Eclipse还是Android Studio都需要只吃Java语言运行吧. 官网:Oracl ...

  8. JDK 8 中Lambda表达式的使用

    认识Lambda表达式 首先来引入一个示例 new Thread(new Runnable() {     @Override     public void run() {         Syst ...

  9. ubuntu 14.10 lts 64-bits环境下使用Android Studio

    距离google发布android studio 1.0正式版已经两个月左右了.由于一直习惯使用eclipse+ADT的模式,而且曾在windows下试用一次Android Studio预览版,感觉卡 ...

随机推荐

  1. 状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely

    题目传送门 题意:有n*m的房间,'.'表示可以被点亮,'#'表示不能被点亮,每点亮一个房间会使旁边的房间也点亮,有意盏特别的灯可以选择周围不同方向的房间点亮.问最少需要多少灯使得所有房间点亮 分析: ...

  2. python 代码片段11

    #coding=utf-8 #python里面的字典,用{}来表示 book={'title':'python web development','year':2008} print book pri ...

  3. java中特殊的String类型

    Java中String是一个特殊的包装类数据有两种创建形式: String s = "abc"; String s = new String("abc"); 第 ...

  4. TYVJ P1016 装箱问题 Label:01背包 DP

    做题记录:2016-08-15 23:07:04 背景 太原成成中学第2次模拟赛 第三道 描述 有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积 ( ...

  5. [Unity2D]精灵动画

    通常我们在游戏里面创建的精灵比如玩家主角,它在移动的过程中一般会带有一些动画的效果,比如两只脚前后地移动,那么这种动画效果的实现和控制就可以通过Unity2D的动画系统来实现. 要添加这样的动画,首先 ...

  6. 【BZOJ】1085: [SCOI2005]骑士精神(A*启发式搜索)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1085 囧啊囧,看了题解后写了个程序,但是样例总过不了T+T,调试了不下于1个小时,肉眼对拍看了根本看 ...

  7. Google Code Jam 2010 Round 1C Problem B. Load Testing

    https://code.google.com/codejam/contest/619102/dashboard#s=p1&a=1 Problem Now that you have won ...

  8. Idea_idea代码调试debug篇

    主要看图,看图一目了然. 断点的设定和eclipse一样,只要点一下就可以,下面是我设定的几个断点,再下面的三个窗口是用来调试代码的,这个和eclipse类似 调试常用的快捷键 ? 1 2 3 4 5 ...

  9. echo "不允许上传该类型的文件

    <?php教程 // 上传设置 $maxsize=10002400;            //最大允许上传的文件大小 $alltype=array(".php"," ...

  10. JSValidation客户端验证框架

    下载 引入文件 <script src="/Example4/js/validation-framework.js"></script> <!DOCT ...