今天学习了的主要内容:
1.Lambda表达式的基本语法规则
主要语法规则:
lambda标准写法:(类型 参数名, 类型 参数名) -> {方法实现体;}
也可以不写类型,直接参数
lambda表达式与方法的差异:
没有名称
没有返回值类型,返回值类型是根据匹配的方法来确定的
不可以有throws语句,编译器会自行推断
不可以是泛型类型的参数
可以将它赋值给一个合适的函数式接口变量
实现体:
实现体可以为代码块和表达式
代码块使用大括号末尾有分号
表达式可以不用大括号和分号结尾
建议都用大括号套上,方便阅读和规范
无参数声明:
没有参数我们要使用小括号的话还是得加上小括号,不允许没有小括号
LambdaTest02(主测试类):
package LessonForLambda02;
@FunctionalInterface
interface Gameable01
{
public double getGamePrice01(double price1, double price2);
}
@FunctionalInterface
interface Gameable02
{
public double getGamePrice02(double price1, double price2);
}
@FunctionalInterface
interface Gameable03
{
public String getGameName(String s);
}
@FunctionalInterface
interface Gameable04
{
public void getGame();
}
public class LambdaTest02
{
public static void main(String[] args)
{
//lambda表达式来实现,只要参数类型啥的
Gameable01 ga11 = (double a, double b)->{
return a+b;
};
Gameable02 ga21 = (double a, double b)->{
return a+b;
};
Gameable02 ga22 = (double a, double b)->a+b;//表达式形式,不建议用
Gameable03 ga31 = (String s)->{
return s.concat("哈哈哈哈");
};
//参数可以不写类型
Gameable03 ga32 = (s)->{
return s.concat("哈哈哈哈");
};
//参数只有一个时可以不写小括号但是也不能加类型
Gameable03 ga33 = s->{
return s.concat("哈哈哈哈");
};
Gameable04 ga41 = ()->{
System.out.println("嘻嘻嘻");
};
}
}
部分文字来源于:
咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
在这里十分感谢老师能够给我带来学习的激情。
2020.10.17
可以转载我的学习日记但请注明出处,谢谢。
本文章是本人学习笔记,不进行任何商用!只为记录本人学习历程。
毕