以前觉得java让人觉得有趣的一个特点是支持:匿名内部类,而最近发现jdk8已支持lambda并有更简便的方式,来实现匿名内部类. 这会让程序员更舒服,更喜欢java. 多年前觉得java语法和C#语法差得有点远,没有C#那么写来方便,现在觉得jdk8也很不错了.做技术还是要向前看. final TextView txtView2 = (TextView)this.findViewById(R.id.txtView2); Button btnChangeView = (Button)findVi…
Jdk1.8已经出很久了但是很多同学对它的特性在android studio 中的应用可能还不是很熟悉,今天我们就来对这个新特性在AS中做它的应用实践. 一.首先在有JDK1.8的情况下我们要在AS的设置中将这个地方设置成java1.8的. 二在build.gradle中添加上这两句 即: compileOptions {    sourceCompatibility 1.8    targetCompatibility 1.8} 这样就完成了使用之前的设置工作了.然后我们进入重要的应用. 那么…
前提 笔者在下班空余时间想以Javassist为核心基于JDBC写一套摒弃反射调用的轻量级的ORM框架,过程中有研读mybatis.tk-mapper.mybatis-plus和spring-boot-starter-jdbc的源代码,其中发现了mybatis-plus中的LambdaQueryWrapper可以获取当前调用的Lambda表达式中的方法信息(实际上是CallSite的信息),这里做一个完整的记录.本文基于JDK11编写,其他版本的JDK不一定合适. 神奇的Lambda表达式序列化…
了解lambda之前先了解下什么是函数式接口,函数式接口即接口里必须有一个抽象方法(抽象的方法只能有一个,可以有其他的用default修饰的方法) jdk8里新增了一个@FunctionalInterface注解,这个注解标注此接口为函数式接口,但是并不是必须的,任何满足我上面所说的只有一个抽象方法的接口都可以称之为函数式接口,但是如果一个接口上标注了此注解,就必须满足上述条件 lambda表达式用来重写函数式接口中的那个抽象方法,有点类似匿名内部类 lambda表达式的语法包括3个部分: 1.…
移动端如果访问不佳,请访问–>Github版 背景 和朋友讨论 JAVA8 的新特性,聊到Lambda,正好在掘金上看到一篇相关的文章,结合资料,作一个总结,特别是记录下实际使用中遇到的问题. 什么是Lambda表达式 lambda表达式,它将允许我们将行为传到函数里.在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出.Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码.这样有时可读性更好,表达更清晰.…
什么是Lambda表达式 lambda表达式,它将允许我们将行为传到函数里.在Java 8之前,如果想将行为传入函数,仅有的选择就是匿名类,需要6行代码.而定义行为最重要的那行代码,却混在中间不够突出.Lambda表达式取代了匿名类,取消了模板,允许用函数式风格编写代码.这样有时可读性更好,表达更清晰. Lamdba示例 用lambda表达式实现Runnable 使用lambda表达式可以替换匿名类,而实现Runnable接口是匿名类的最好示例.Java 8之前的runnable实现方法,需要4…
最近在装AS的时候遇到一个问题,新建工程后,编译报错,Error:Could not determine Java version 不言而喻:可定是JDK的问题,网上查到2中可能性 第一:就是JDK路径没有关联好 解决办法: File -->Project Structure-->SDK Location,如图,设置下,JDK的位置就行 第二,这种情况应该只能MAC IOS 操作系统中遇到 就是info.plist这个配置文件下JVM Version标签,设置不对. 解决方法: 1. Find…
1. 刚开始接触Android开发,首先需要为你的电脑安装java JDK(Java开发工具包),不管是用Eclipse还是Android Studio都需要只吃Java语言运行吧. 官网:Oracle官网(这公司是真厉害) 按照以下步骤操作即可: (1)点击图中箭头所指的任意一个都可以. (2)接受协议 (3)找到适合自己电脑系统的JDK版本,点击下载. 提醒几点:   1.Android studio要求JDK版本为JDK7及更高版本 2.确认自己电脑操作系统是32位还是64位,一定下载对应…
认识Lambda表达式 首先来引入一个示例 new Thread(new Runnable() {     @Override     public void run() {         System.out.println("Hello World!");         }     }); 使用Lambda表达式则只需要使用一句话就可代替上面使用匿名类的方式.       new Thread(() -> System.out.println("Hello Wo…
距离google发布android studio 1.0正式版已经两个月左右了.由于一直习惯使用eclipse+ADT的模式,而且曾在windows下试用一次Android Studio预览版,感觉卡的不行,就暂时搁置下来了.今天突发奇想,不知道在linux下使用android studio是否会比windows下更加流畅.下面是基本的搭建过程,以及遇到的一些问题:一.安装用的文件 1.ubuntu 14.10 LTS 64-bits(由于使用了64-bits的操作系统,在运行android s…