Java函数式编程

Lambda表达式

明确指出参数类型

(int a, int b) -> a + b;

代码多余一行,不能省略{}以及最后一行的return

(int a, int b) -> {int c = a + b; return c;}

 

Lambda1 lambda = (a, b) -> a + b;

interface Lambda1{

int op(int a, int b);

}

函数对象-方法引用

Math::max    =  (int a, int b) -> Math.max(a, b);

Student::getName = (Student stu) -> stu.getName();

System.out::println = (Object obj) -> System.out.println(obj);

Student::new =  () -> new Student();

 

练习

1)判断语法正确性

interface Lambda1 {

int op(int a, int b);

}

interface Lambda2{

void op(Object obj);

}

  1. Lambda1 lambda = a, b -> a-b  正确 错误,参数多于一个需要用括号,Lambda1 lambda = (a, b) -> a – b;
  2. Lambda1 lambda = (a, b) -> c * b; 正确 正确
  3. Lambda1 lambda = (int a, b) -> a + b; 错误 错误
  4. Lambda2 lambda = Object a -> Systemc.out.println(a); 正确 错误 (Object a) -> Systemc.out.println(a); 或者 a -> System.out.println(a);
  5. Math:random        ()->Math.random();
  6. Math::sqrt      (double number) -> Math.sqrt(number);
  7. Student::getName;        (Student stu) -> stu.getName();
  8. Student::setName;        (Studnet stu, String newName) -> stu.setName(newName);
  9. Student::hashCode;        (Student stu) -> stu.hashCode();
  10. Student::equals;        (Sutdnet stu, Object o) -> stu.equals(o);

假设已有对象 Student stu = new Student(“张三”);

  1. stu::getName
https://www.bba.wiki/2024/09/23/java%e5%87%bd%e6%95%b0%e5%bc%8f%e7%bc%96%e7%a8%8b/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇