jdk8特性 lambda表达式
jdk8新特性 也要用起来了
下面是我子级的练习和理解
package Test;import sun.applet.Main;import java.util.ArrayList;
import java.util.List;/*** Created with IntelliJ IDEA.** @Author: ljw* @Date: 2022/07/08/8:50* @Description:*/
public class Test {public static void main(String[] args) {//匿名内部类 是一个接口只有一个抽象方法时要实现的 我在下面定义了4个匿名内部类接口函数 都使用String类型
/* 这里是最原始的调用匿名内部类接口的方法
//我使用的是第一个有参无返回值的方法 我想要的是调用时打印test1<String> test1 = new test1<String>() {public void test1(String s) {System.out.println(s);}};test1.test1("hello,world");*///像上面的代码在jdk8中可以使用Lambda表达式 最基础的例子就是使用treeset来用对象排序时 使用 Comparator 独立的排序器尝试//使用Lambda表达式 下面的代码可以简化为//一般匿名内部类只有一个抽象方法 可以把抽象方法去掉直接写()里面加参数 这里因为只有一个参数 可以把括号也去掉/* Lambda表达式语法:- `->`被称为Lambda操作符 或 箭头操作符- 该操作符左侧指定了Lambda表达式需要的所有参数- 该操作符右侧指定了Lambda体,即Lambda表达式要执行的功能。*///如果内部只有一行代码可以直接写出来
// test1<String> test1 = s -> System.out.println(s);
// test1.test1("hello,world");// 当lambda体只有一行代码时,并且这行代码是在调用一个已有的方法时 可以直接引用
// test1<String> test1 = System.out::println;
// test1.test1("hello,world");
// //------------------------------------------------------下一题的分割线----------------------------------------------//现在来调用第二个有参有返回值 我想的是传个参数返回时为大写 上面 的刚开始调用就不写了//这是有返回值的 使用return时得加大括号{}在里面写返回值 但是返回值只有一行时可以省略 return
// test2<String> test2=(s) -> {return s.toUpperCase();};
// System.out.println(test2.test2("hello,world"));//上面可以简化成 因为只有一个参数
// test2<String> test2=s -> s.toUpperCase();
// System.out.println(test2.test2("hello,world"));// 而这里调用的方法时String已有 的方法 可以简化成/* test2<String> test2=String::toUpperCase;System.out.println(test2.test2("hello,world"));*///------------------------------------------------------下一题的分割线----------------------------------------------//现在开始调用第三个有两个参数的 也是直接从 lambda表达式开始//这里应该是test3最简代码了/* test3<String> test3=(s,d)-> System.out.println(s+d);test3.test3("hello, ","world");*///------------------------------------------------------下一题的分割线----------------------------------------------//这里写的是第四个 有两个参数并且有返回值/* test4<String> test4=(s,d)-> s+d;System.out.println(test4.test4("hello, ","world"));*///这里有String已有的方法 可以改成
// test4<String> test4=String::concat;
// System.out.println(test4.test4("hello, ","world"));//------------------------------------------------------分割线----------------------------------------------//平时我自己平常时使用的lambda表达式//一个集合List<Integer> list=new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(6);//当我想要知道里面是什么东西时 最快速度答应出来list.forEach(System.out::println); //当然还可以做别的事情}interface test1<T>{void test1(T t);}interface test2<T>{T test2(T t);}interface test3<T>{void test3(T t,T t2);}interface test4<T>{T test4(T t,T t2);}}
后续可以自己写下无参无返回值
遇到的问题 :(19条消息) 解决:Information:java: javacTask: 源发行版 8 需要目标发行版 1.8_空无多有的博客-CSDN博客
(19条消息) lambda expressions are not supported at language level '5'_好色仙人的徒弟的博客-CSDN博客
jdk8特性 lambda表达式相关推荐
- java lambda表达式详解_Java8新特性Lambda表达式详解
课程目标: 通过本课程的学习,详细掌握Java8新特性之Lambda表达式: 适用人群:有Java基础的开发人员: 课程概述:从Java 8出现以来lambda是最重要的特性之一,它可以让我们用简洁流 ...
- Java8新特性----Lambda表达式详细探讨
Java8新特性 Lambda表达式 入门演示 案例1 如何解决 cannot be cast to java.lang.Comparable问题? 案例2 优化方式一 : 策略设计模式 优化方式二: ...
- Java 8 新特性 lambda表达式
/ Created by Manager on 2021/4/1. Java 8 新特性 lambda表达式 StreamAPI 新日期 新注解 */ 视频连接 1https://www.bilibi ...
- Java 8 新特性Lambda 表达式
Java 8 新特性Lambda 表达式 一.常用循环 二.匿名内部类 三.排序集合 四.循环打印对象 五.根据条件修改 六.排序 七.求和 八.统计方法 九.材料 一.常用循环 public cla ...
- C++11新特性——λ(lambda)表达式详解
C++11新特性--λ(lambda)表达式 C++11中引入了λ表达式,它可以用来定义一个内联(inline)的函数,作为一个本地的对象或者一个参数.有了λ表达式,我们可以很方便的使用stl标准库. ...
- java新特性lambda表达式快速入门
文章目录 序 常规写法 写法一:新建类并实现该接口 写法二:使用匿名函数 lambda写法 写法一:lambda常规写法 写法二:lambda简写 中场疑问 lambda的方法引用 写法一 写法二 练 ...
- jdk8新特性 lambda表达式详解
本文主要讲到的内容有: 一- 前言 二- 背景 三- lambda表达式的语法 四- Lambda程序例子 4-1 Runnable Lambda 4-2 Comparator Lambda 4-3 ...
- JDK8新特性-Lambda表达式查找
2019独角兽企业重金招聘Python工程师标准>>> 1. Lambda语法的三种形式 (参数) -> 单行语句 (参数) -> {多行语句} (参数) -> 表 ...
- jdk8新特性-Lambda表达式,方法引用
Lambda方法引用的概念 1).什么是"方法引用":当我们使用Lambda实现一些功能时,发现已有的类库中已经有方法实现了这样的功能,这时,我们就可以引用已实现的方法来代替Lam ...
- java thread lambda_Java8新特性--Lambda表达式
从java8出现以来lambda是最重要的特性之一,它可以让我们用简洁流畅的代码完成一个功能. 很长一段时间java被吐槽是冗余和缺乏函数式编程能力的语言,随着函数式编程的流行java8种也引入了 这 ...
最新文章
- 2016年CCPC/ICPC比赛总结
- 测试Servlet生命周期例子程序
- mysql current_timestamp 不自动更新_MySQL ON UPDATE CURRENT_TIMESTAMP不更新
- ansible 修改文件变量_基于ansible的批量配置生成
- Python学习笔记:动态添加与删除属性与方法
- Python之基本数据类型set常用基本方法简述
- 在使用DelphiXE3和SQLite3进行程序开发时,解决最后一个字符乱码的问题
- 2 Advanced Read/Write Splitting with PHP’s MySQLnd
- Linux常用命令,Linux常用基本命令大全
- ArcGIS建立拓扑并检查修改
- 知乎企业认证怎么弄?知乎企业号怎么申请?详解来了
- 2017ccpc哈尔滨站部分简要题解
- 【机器学习】Python详细实现基于欧式Euclidean、切比雪夫Chebyshew、曼哈顿Manhattan距离的Kmeans聚类
- 《数学之美》吴军-读书笔记
- quadro 2000专业显卡 win7计算机体验指数5.9,英伟达全新Quadro K2200专业级显卡评测...
- 用java语言实现2020年1月1号到2022年7月3号之间的间隔天数
- Java 统计接口消耗时间
- cadence allegro 17.2中的正负片
- 一个系列搞懂Mysql数据库12:从实践sql语句优化开始
- AllWinner T113编译篇