JDK1.8新特性及代码
发布日期:2021-07-20 20:53:25 浏览次数:29 分类:技术文章

本文共 2834 字,大约阅读时间需要 9 分钟。

/** 函数式接口*/package com.star.wechat;@FunctionalInterface  public interface Jdk8Interface {			public void method(String s1,String s2);}
package com.lx.newjdk; import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;import org.junit.Test; @FunctionalInterface  // 新特性2 函数式接口 只允许一个抽象方法public interface Demo { 	public void oldMethod(String la); 	 public default void test2(){  // 新特性1 接口内的default方法 ,可定义方法体	        System.out.println("我是新特性1");    }	 	 public static void main(String[] args) {		/*new Demo() {			@Override			public void oldMethod() {				System.out.println("老方法");			}		}.oldMethod();*/		 /**		  * lambda 1		  */		 Demo d = la -> System.out.println("真牛皮"+la);  // 新特性3 lambda表达式		// Demo d = (la) -> System.out.println("真牛皮"+la);  // 参数可以用()括号括起来, 当只有一个参数时可以去掉括号;		 d.oldMethod("搞一下");		 /**		  * lambda 2		  */		Runnable r1 = () -> System.out.println("线程开始");   // 无参数时必须加上括号		//new Thread(r1).start();		new Thread(() -> System.out.println("这么屌的吗,直接一个括号????")).start();				/**		 * lambda 3 不带参数		 */		List
list =Arrays.asList("aaa","fsa","ser","eere"); Collections.sort(list, (a,b)-> Integer.parseInt(String.valueOf(b.compareTo(a)+1))); for (String string : list) { System.out.println(string); } /** * lambda 4 带参数 */ List
list2 =Arrays.asList("aaa","fsa","ser","eere"); //List
list2 =Arrays.asList("aaa","fsa","ser","eere"); 错误 list泛型需要与后面的comparator泛型相同 Collections.sort(list2, (Comparator
) (String a,String b)->{ return b.compareTo(a); } ); //也可以这么写 /* Collections.sort(list2, (String a,String b)->{ return b.compareTo(a); } );*/ for (String string : list) { System.out.println(string); } /** * lambda 5 允许使用外部变量(自动且隐性的给外部变量用final修饰),相当于内部类 */ int count =0; Jdk8Interface j8 = (s1,s2) -> System.out.println(s1+s2+count); j8.method("参数1", "参数2"); new Jdk8Interface() { @Override public void method(String s1, String s2) { System.out.println(s1+s2+count); //count = 5; 会报错 证明是final的 } }.method("参数1", "参数2");; } }
package com.lx.newjdk;import java.util.List;@FunctionalInterfacepublic interface FuncInterface {	public List process(String[] s);}

 

package com.lx.newjdk;import java.util.Arrays;import java.util.List;import org.junit.Test;public class TestNew {	/**	 * 测试新特性 方法与构造函数引用 ::	 */	@Test	 public void fun(){		 Jdk8Interface jI = (s1,s2) -> System.out.println(s1+s2);		 Jdk8Interface jI2 = Arrays::asList;		 String[] ss = {"9","999"};		 jI.method("1", "3");		 		 		 FuncInterface fi = Arrays::asList; 		 System.out.println((fi.process(ss)) instanceof List);	}	}

 

转载地址:https://blog.csdn.net/liao0801_123/article/details/84001730 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:MySQL:浅析 Impossible WHERE noticed after reading const tables
下一篇:为什么内部类引用的外部变量必须用final修饰(JDK1.8可以不用final修饰, 但外部变量也不可更改, 即相当于隐性的final修饰)

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年03月10日 01时45分32秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

mysql el函数_MySQL中的常用函数 2019-04-21
mysql 备份 晓燕_mysql字符串函数 2019-04-21
mysql返回第n个值_获取mysql一组数据中的第N大的值 2019-04-21
java读文件几种方式_JAVA读取文件的几种方式 2019-04-21
java arraylist常用方法_C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)... 2019-04-21
如何实现java文档注释_JavaDoc注释与帮助说明文档 2019-04-21
Java一亿电话号码去重_20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap... 2019-04-21
java判断ipv6地址类型_IPv6地址类型与格式 2019-04-21
linux java jdk_linux安装JDK 2019-04-21
java的showcase_java – 如何在Eclipse中导入ShowcaseView? 2019-04-21
JAVA中math的作用_Java中Random 和 Math 的概述及使用(二十六) 2019-04-21
mysql排序rank_MySQL_实现组内排序-Oracle中的rank()函数的功能 2019-04-21
vim自定义html,html - 寻找一种使用VIM在HTML中直接生成漂亮代码段的方法 - 堆栈内存溢出... 2019-04-21
python时间序列因果检验_用python做时间序列预测八:Granger causality test(格兰杰因果检验)... 2019-04-21
python numpy 函数详解_python使用numpy中的size()函数实例用法详解 2019-04-21
java spring上传文件_Java Spring文件上传,Java文件上传,Java通用文件上传 2019-04-21
linux 模拟键盘输入到进程,Linux 下模拟键盘输入 2019-04-21
linux服务器上已安装R 用户下载R包,R语言安装R package的2种方法 2019-04-21
linux 7 磁盘空间太小,Linux下磁盘保留空间的调整,解决df看到的空间和实际磁盘大小不一致的问题... 2019-04-21
linux下mysql 备份方法,Linux下mysql数据库备份方法小结 2019-04-21