JDK1.8新特性之Lambda表示式()->
1.Lambda表示式
必須是該介面只有一個一般方法才能使用
2.程式碼實現
package com.lemon;
public class LambdaDemo {
public static void main(String[] args) {
//第一種方法
IEat a1 = new IEatImple();
a1.eat();
//第二種方法
IEat a2 = new IEat(){
@Override
public void eat() {
System.out.println("eat orange!");
}
};
a2.eat();
//第三種 Lambda方式
//優點: 程式碼簡潔、不生產單獨的class檔案
//缺點:限制該介面只能有一個方法,才能使用Lambda方式
//(1)沒有引數時
//IEat a3 = ()->{System.out.println("eat apple and orange");};
//程式碼塊只有一句 可以省略大括號
IEat a3 = ()-> System.out.println("eat apple and orange");
a3.eat();
//(2)帶引數是使用,引數的型別可以省略
IEat1 a4 = (username,password)-> System.out.println("username:"+ username + ",password:"+ password);
a4.eat("admin","123456");
//(3)多句程式碼 大括號不可省略
IEat1 a5 = (username,password)->{
System.out.print("username:"+ username);
System.out.println(",password:"+ password);
};
a5.eat("admin1","123");
//(4)帶返回值的
IEat2 a6 = (name)->{
System.out.println("name:" + name);
return 6;
};
//(5)帶返回值的 只有一行程式碼 不需要寫return 6;直接寫返回值
IEat2 a7 = (name)-> name != null ? 1 : 0 ;
System.out.println(a7.eat("123"));
//(6)帶final修飾 要麼不寫,要麼全寫
//IEat3 a8 = (final String name)-> name != null ? 1 : 0;
IEat3 a8 = (name)-> name != null ? 1 : 0;
}
}
//只有一個抽象方法的介面 無引數
interface IEat{
public void eat();
}
//介面的實現
class IEatImple implements IEat{
@Override
public void eat() {
System.out.println("eat apple!");
}
}
//有引數
interface IEat1{
public void eat(String username,String password);
}
//帶返回值的
interface IEat2{
public int eat(String name);
}
//引數final修飾
interface IEat3{
public int eat(final String name);
}
3.介面中的預設方法和靜態方法
介面中只有一個一般方法,不論有幾個預設方法和靜態方法都不影響Lembda表示式的影響
相關文章
- JDK1.8新特性之Lambda表示式JDK
- jdk1.8 新特性之 lambda表示式JDK
- JDK1.8的新特性之Lambda表示式JDK
- JDK1.8新特性--Lambda表示式JDK
- jdk1.8新特性:Lambda表示式JDK
- jdk1.8 新特性之 如何寫lambda表示式JDK
- JDK1.8之lambda表示式JDK
- JDK1.8 之Lambda表示式JDK
- JDK 1.8 新特性之Lambda表示式JDK
- JDK1.8最新特性--Lambda表示式(重點)JDK
- java8 新特性之Lambda 表示式Java
- Java8 新特性之 Lambda 表示式Java
- C++11新特性之Lambda表示式C++
- JDK1.8新特性:Lambda表示式語法和內建函式式介面JDK函式
- java8新特性之lambda表示式(一)Java
- [Java學習筆記]JDK1.8新特性學習(一)Lambda表示式Java筆記JDK
- Java 8新特性(一):Lambda表示式Java
- .NET3.5新特性,Lambda表示式
- JDK1.8之Lambda解析與表示式的使用JDK
- Java8新特性(1):Lambda表示式Java
- Java8新特性(一)-Lambda表示式Java
- JDK新特性-Lambda表示式的神操作JDK
- java-反射,介面新特性,Lambda表示式Java反射
- .net framework3.5新特性:Lambda表示式Framework
- jdk1.8 lambda表示式入門JDK
- java8的新特性之lambda表示式和方法引用Java
- JDK1.8及以上的Lambda表示式JDK
- JDK1.8 Lambda 表示式的學習JDK
- Java8新特性第1章(Lambda表示式)Java
- JDK1.8中Lambda表示式的應用JDK
- 深圳Java培訓學習:Java8.0新特性之Lambda表示式Java
- 好程式設計師分享java8新特性之Lambda表示式程式設計師Java
- java8特性-lambda表示式Java
- Java8新特性——從Lambda表示式到Stream流Java
- Java 8新特性:lambda表示式(四)轉載總結Java
- 【原創】.net framework3.5新特性1:Lambda表示式Framework
- Java之lambda表示式Java
- ?Java8新特性之Lambda表示式,函式式介面,方法引用和default關鍵字Java函式