java基础 Lambda表达式(实现接口)的写法格式,作用(用来实现一个接口,生成一个匿名实现类)

    科技2022-08-28  95

    package Test10月; import org.jetbrains.annotations.NotNull; import org.junit.Test; import java.util.Comparator; /** * 功能描述:Lambda表达式练习-- * --接口的实例(且接口只能有一个抽象方法,称为函数式接口) * @version 1.0 * @className Test1005 * @author: 罗德 * @create: 2020-10-05 16:02 */ public class Test1005 { /** * 功能描述:格式一:无参无返回值 * ():参数,没有就空着 * ->:Lambda操作符(操作符左边形参列表,右边重写方法的内容) * 内容:只要是自己写的都留下,原来给的一键生成的都去掉,可以用大括号括起来 * 方法参数描述:无 */ @Test public void test() { Runnable runnable = new Runnable() { @Override public void run() { System.out.println("正常的练习"); System.out.println("正常的练习2"); } }; Runnable runnable1 = () -> { System.out.println("Lambda表达式练习"); System.out.println("Lambda表达式练习2"); //有return加return }; /* * Lambda表达式练习 * Lambda表达式练习2 */ runnable1.run(); } /** * 功能描述:格式二:有参,有返回值 * (o1, o2):参数,如果参数只有一个则可以省略(),只写一个参数 * 返回值:Integer.compare(o1, o2): * 其他自带的都删掉,只有一条返回语句可以不写花括号 * 方法参数描述:无 */ @Test public void test1() { Comparator<Integer> zComparator = new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return Integer.compare(o1, o2); } }; /* * 类型推断,Comparator<Integer> 写了Integer,后面参数就不用再写了 * 只有一行的可以省略花括号和return关键字 * Comparator<Integer> zComparator1 = (o1, o2) -> Integer.compare(o1, o2); */ Comparator<Integer> zComparator1 = (o1, o2) -> { return Integer.compare(o1, o2); }; int compare1 = zComparator1.compare(1, 2); System.out.println("Lambda表达式练习" + compare1);//Lambda表达式练习-1 Comparable<Object> comparable = new Comparable<>() { @Override public int compareTo(@NotNull Object o) { return 0; } }; /* * 只有一个参数,一行内容,可以省略小括号和花括号 * Comparable<Object> comparable1 = o -> 0; */ Comparable<Object> comparable1 = o -> { return 0; }; } }
    Processed: 0.008, SQL: 9