Rumah >Java >javaTutorial >Ungkapan Lambda Java
Lambda Expressions ialah penambahan ciri baharu dan diperkenalkan dalam Java8. Ia pada asasnya menerangkan semua contoh antara muka berfungsi. Pelaksanaannya berfungsi dengan cara yang merangkumi hanya satu fungsi abstrak dan melaksanakan antara muka berfungsi. Java 8 Lambda Expression boleh mencipta hujah kaedah atau menganggap keseluruhan kod sebagai data. Ia boleh melaksanakan fungsi yang tidak mempunyai sebarang kelas khusus, yang bermaksud kelas abstrak. Ungkapan ini boleh dihantar ke objek seterusnya dan boleh dilaksanakan apabila diperlukan. Ungkapan Lambda boleh dianggap sama seperti fungsi dan boleh menerima parameter seperti fungsi lain.
Sintaks:
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
lambda_operator -> body
Parameter yang dihantar ke lambda_operator adalah seperti berikut:
Ungkapan Lambda wujud dengan Java 8 dan telah mengubah serta memudahkan semua pelaksanaan kompleks blok kod yang boleh dihantar untuk pelaksanaan. Ia adalah ciri yang sangat biasa yang digunakan oleh banyak bahasa pengaturcaraan lain, dan begitu juga Java 8; selepas pengenalannya, ciri java yang lebih awal memerlukan penciptaan objek dan kemudian menghantar objek tersebut, seperti untuk membuat corak reka bentuk berstrategi. Tetapi ungkapan lambda menjadi penyelamat masalah yang diterangkan di atas kerana ia merupakan penambahan nilai untuk meningkatkan pelaksanaan antara muka berfungsi. Ia telah memudahkan pelaksanaan dengan fungsi lambda_operator menghala ke arah badan program yang mempunyai sifar, satu, dan berbilang parameter untuk dihantar ke fungsi tersebut. Ia juga menggunakan fungsi yang dibuat dan bukan milik mana-mana kelas yang ditentukan. Ia mempunyai ciri yang sangat baik yang boleh menggunakan fungsi sebagai hujah kaedah bagi fungsi, yang dianggap data secara keseluruhan.
Ungkapan Lambda dalam Java 8 sangat berkuasa dan sangat menarik. Adalah sangat disyorkan untuk menukar objek yang berkaitan dengan antara muka berfungsi untuk output terakhirnya.
Terdapat corak kerja tersembunyi dalam mana-mana ungkapan, jadi sebagai Ungkapan Lambda ia juga mempunyai beberapa corak kerja yang diwakili seperti berikut:
(int arg_a, String arg_b) {System.out.println("two arguments"+ arg_a+" and "+arg_b);}
Dua argumen int arg_a dan String arg_b ini membentuk senarai argumen dengan hujah sifar, satu hujah atau lebih daripada dua hujah, iaitu berbilang argumen. Argumen ini sebagai senarai hujah diserahkan kepada badan ungkapan lambda dengan bantuan token anak panah. Token anak panah ini dengan senarai hujahnya terus mengikuti badan lambda. Selain itu, ungkapan lambda dalam format ini selanjutnya menggunakan antara muka berfungsi untuk pelaksanaannya. Tetapi jika ia adalah beberapa senarai argumen, maka adalah wajib untuk menutup kurungan atau blok kod dan kemudian jenis pulangan fungsi tanpa nama akan sama dengan jenis nilai yang perlu mengembalikan kod blok atau batal jika yang tidak dikembalikan atau mempunyai sebarang nilai untuknya.
Di bawah ialah contoh Ungkapan Java Lambda:
Atur cara ini menggambarkan pelaksanaan antara muka tanpa ungkapan lambda digunakan dan tidak juga dengan mencipta kelas abstrak untuk mencetak saiz segi empat tepat.
Kod:
interface Shapes { public void rectangle(); } public class WithoutLambdaExpression { public static void main(String[] args) { int size=15; Shapes wd=new Shapes(){ public void rectangle() { System.out.println("Get the shape" + size ); } }; wd.rectangle(); } }
Output:
Atur cara ini menggambarkan penciptaan antara muka berfungsi menggunakan Ungkapan lambda, dengan itu memberikan output bentuk yang diperlukan.
Kod:
interface Shapes{ public void Rectangle(); } public class UsinglmbdaExpression { public static void main(String[] args) { int size=20; Shapes r8=()-> { System.out.println("Shapes of all sizes "+ size); }; r8.Rectangle(); } }
Output:
This program is used to illustrate the Lambda Expression for Java 8 by not passing any parameter implemented just with the function parameter and the associated abstract classes of the implemented functional interface as shown.
Code:
interface SomethingFishy{ public String strange(); } public class LambdaWithNoArg{ public static void main(String[] args) { SomethingFishy k=()->{ return "Very Strange View."; }; System.out.println(k.strange()); } }
Output:
This program illustrates the lambda Expression with the implementation of functional parameters, thereby passing the single parameter from the function of the interface and the lambda expression associated with it.
Code:
interface JuicyFruit{ public String juicy(String name); } public class SinglParamLambda { public static void main(String[] args) { JuicyFruit jf1=(name)->{ return "Kiwi, "+name; }; System.out.println(jf1.juicy("orange")); JuicyFruit jf2= name ->{ return "Mango, "+name; }; System.out.println(jf2.juicy("Pineapple")); } }
Output:
This program is used to illustrate the Multiple parameter lambda Expression with the functional interface of division and its values to be divided using the class’s div function.
Code:
interface Division{ int div(int p,int q); } public class MultiParamLambdaExpression{ public static void main(String[] args) { Division div1=(p,q)->(p/q); System.out.println(div1.div(20,40)); Division div2=(int p,int q)->(p/q); System.out.println(div2.div(400,600)); } }
Output
Note: Lambda expressions are exclusively used to implement the functional interfaces, and they can contain any type of argument such as zero, two or multiple.Lambda Expression introduced with Java 8 has simplified the execution of the block of code using the array operator and operator arrow pointing to the lambda body, and then it will be used for implementing the interfaces with the abstract classes associated with each class. Thus, Lambda Expression of Java 8 has really transformed the interface interaction and the implementation of the functions and method easier with the abstract classes.
Atas ialah kandungan terperinci Ungkapan Lambda Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!