1. 程式人生 > 其它 >kill -9 批量刪除 oracle_實用!Oracle資料庫常用命令整理

kill -9 批量刪除 oracle_實用!Oracle資料庫常用命令整理

技術標籤:javalambda介面

lamda表示式是jdk1.8新特性之一

lamda表示式的前提:有一個函式式介面。

函式式介面定義:介面中有一個函式。

下面用程式碼做演示。

首先介面中的函式時無參的
本來是下面這樣的:介面,介面實現類,和main方法。也就是說需要一個介面,兩個類。

package com.yang;

public class Noargs {

    public static void main(String[] args) {
        Ilike like = new Like();
        like.likeLamda();
    }
} //定義函式式介面 interface Ilike{ void likeLamda(); } //定義介面實現類 class Like implements Ilike{ @Override public void likeLamda() { System.out.println("I like Java"); } }

然後實現類可以用靜態內部類代替,就演化成:一個介面,一個類!

package com.yang;

public class Noargs {
    
    //靜態內部類
    static class
Like implements Ilike{ @Override public void likeLamda() { System.out.println("I like Java"); } } public static void main(String[] args) { Ilike like = new Like(); like.likeLamda(); } } //定義函式式介面 interface Ilike{ void likeLamda
(); }

而靜態內部類還可以用區域性內部類來代替。

package com.yang;

public class Noargs {
    public static void main(String[] args) {
        //區域性內部類
        class Like implements Ilike{
            @Override
            public void likeLamda() {
                System.out.println("I like Java");
            }
        }
        Ilike like = new Like();
        like.likeLamda();
    }
}

//定義函式式介面
interface Ilike{
    void likeLamda();
}

區域性內部類再簡化,就是匿名內部類:沒有類的名稱,必須藉助介面或者父類。

package com.yang;
public class Noargs {
  public static void main(String[] args) {
        //匿名內部類
        Ilike like = new Ilike() {
            @Override
            public void likeLamda() {
                System.out.println("I like Java");
            }
        };
        like.likeLamda();        
    }
}

//定義函式式介面
interface Ilike{
    void likeLamda();
}


再簡化,就是lamda表示式了。比匿名內部類,省略了:
在這裡插入圖片描述

package com.yang;
public class Noargs {
    
    public static void main(String[] args) {

        //lamda表示式
        Ilike like = () -> {
            System.out.println("I like Java");
        };
        like.likeLamda();

    }
}

//定義函式式介面
interface Ilike{
    void likeLamda();
}

然後是有參的

package com.yang;

public class Args {
    public static void main(String[] args) {
        Ilove love = new Love();
        love.loveLamda(2);
        
    }
}

//函式式介面
interface Ilove{
    void loveLamda(int a);
}

//實現類
class Love implements Ilove{
    @Override
    public void loveLamda(int a) {
        System.out.println("I love Java" + a);
    }
}

靜態內部類:

package com.yang;

public class Args {
    //靜態內部類
    static class Love implements Ilove{
        @Override
        public void loveLamda(int a) {
            System.out.println("I love Java" + a);
        }
    }
    
    public static void main(String[] args) {
        Ilove love = new Love();
        love.loveLamda(2);

    }
}

//函式式介面
interface Ilove{
    void loveLamda(int a);
}

區域性內部類:

package com.yang;

public class Args {


    public static void main(String[] args) {
        //區域性內部類
        class Love implements Ilove{
            @Override
            public void loveLamda(int a) {
                System.out.println("I love Java" + a);
            }
        }
        Ilove love = new Love();
        love.loveLamda(2);

    }
}

//函式式介面
interface Ilove{
    void loveLamda(int a);
}

匿名內部類:

package com.yang;

public class Args {
    public static void main(String[] args) {

        //匿名內部類
        Ilove love = new Ilove(){
            @Override
            public void loveLamda(int a) {
                System.out.println("I love Java" + a);
            }
        };
    }
}

//函式式介面
interface Ilove{
    void loveLamda(int a);
}

lamda表示式:

package com.yang;

public class Args {  
    public static void main(String[] args) {
        Ilove love = (int a) ->{
            System.out.println("I love Java" + a);
        };
        love.loveLamda(2);
    }
}

//函式式介面
interface Ilove{
    void loveLamda(int a);
}

還可以再簡化:去掉引數型別。

package com.yang;

public class Args {

    public static void main(String[] args) {
       //去掉引數型別
        Ilove love = (a) ->{
            System.out.println("I love Java" + a);
        };
        love.loveLamda(2);
    }
}

//函式式介面
interface Ilove{
    void loveLamda(int a);
}

還可以去掉括號:

package com.yang;

public class Args {

    public static void main(String[] args) {
    	//去掉括號
        Ilove love = a ->{
            System.out.println("I love Java" + a);
        };
        love.loveLamda(2);
    }
}

//函式式介面
interface Ilove{
    void loveLamda(int a);
}

還可以去掉花括號:

package com.yang;

public class Args {

    public static void main(String[] args) {
		//去掉花括號
        Ilove love = a -> System.out.println("I love Java" + a);
        love.loveLamda(2);
    }
}

//函式式介面
interface Ilove{
    void loveLamda(int a);
}

但是要注意:
1.lamda表示式只能在只有一行程式碼的情況下才能簡化為一行(就是去掉花括號的情況),如果有多行的話,只能用花括號。
2.前提是:介面時函式式介面
3.如果是多個引數的話,去掉引數型別時,要去掉只能都去掉,而且必須要加上括號。