Lamda

任何一个接口,如果它只包含一个抽象方法,那么他就是函数式接口;

对于函数式接口,我们就可以通过Lambda表达式来创建该接口的对象

首先对于Lambda的推导

1:定义接口->实现类->静态内部类->局部内部类->匿名内部类->Lambda表达式

(接口)Interface->(){

函数体

}

实现代码:

package com.itheima.mp;

public class LambdaStudy {
    //3:静态内部类
   static class Like2 implements Ilike{

        @Override
        public void lambda() {

            System.out.println("i like lambda2");
        }
    }

    public static void main(String[] args) {

        Like like = new Like();
        like.lambda();
        Like2 like2 = new Like2();
        like2.lambda();
        new Like2().lambda();
        //4:局部内部类
        class Like3 implements Ilike{

            @Override
            public void lambda() {

                System.out.println("i like lambda3");
            }
        }
       new Like3().lambda();

      //5:匿名内部类,没有类的名称,必须借助接口或者父类
        Ilike Ilike = new Ilike() {

            @Override
            public void lambda() {
                System.out.println("i like lambda4");

            }
        };
        Ilike.lambda();

        //用Lambda表达式,Ilike是必须一个接口
        Ilike =()-> {
            System.out.println("i like lambda5");
        };

        like.lambda();

    }

}
//1;有一个函数式接口(一个接口里面只有一个函数的接口叫哈数式接口)
interface Ilike{

    void lambda();
}

//2:实现类
class Like implements Ilike{
    @Override
    public void lambda() {

        System.out.println("i like lambda1");
    }
}

上代码:

package com.itheima.mp;

public class LambdaSimplify {


    public static void main(String[] args) {
//        Love1 love1 = new Love1();
//        love1.love("董舒心");
        //对其进行简化
       // String me="fyc";
        //简化1:
//        Love love=(String name)->{
//            System.out.println("I am love you"+name);
//
//        };
//       love.love("付永闯");
//    }

        //简化2:(去掉参数类型)
//        Love love=(name)->{
//            System.out.println("I am love you"+name);
//        };
//        love.love("付永闯");
//    }

        //简化3:(去掉参数括号)
//        Love love= name->{
//          System.out.println("I am love you"+name);
//        };
        //简化4(去掉花括号):
        Love love=name -> System.out.println("I love you"+name);
       love.love("付永闯");

       //总结:Lambda表达式只能有一行代码的情况下才能简化为一行,如果有多行,那么就要用花括号括起来
        //前提必须是函数式接口(接口中只有一个方法称为函数式接口)
        //多个参数也可以去掉参数类型,要去掉就都去掉,而且必须加括号

   }
}

interface Love{

    void love(String name);



}
//class Love1 implements Love{
//
//    public void love(String name){
//        System.out.println("I am love you"+name);
//    }
//}


总结:Lambda表达式只能有一行代码的情况下才能简化为一行,如果有多行,那么就要用花括号括起来
前提必须是函数式接口(接口中只有一个方法称为函数式接口)
多个参数也可以去掉参数类型,要去掉就都去掉,而且必须加括号

博客内容均系原创,未经允许严禁转载!
暂无评论

发送评论 编辑评论


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