Java 8 – Giao diện chức năng

0
212

Các giao diện chức năng có một chức năng duy nhất để trưng bày. Ví dụ: giao diện So sánh với một phương thức duy nhất ‘CompareTo’ được sử dụng cho mục đích so sánh. Java 8 đã định nghĩa rất nhiều giao diện chức năng được sử dụng rộng rãi trong các biểu thức lambda. Sau đây là danh sách các giao diện chức năng được định nghĩa trong gói java.util.Function. Dưới đây là danh sách các giao diện trong Java8.

Ví dụ về giao diện chức năng

Giao diện Predicate <T> là một giao diện chức năng có kiểm tra phương thức (Đối tượng) để trả về giá trị Boolean. Giao diện này biểu thị rằng một đối tượng được kiểm tra là đúng hay sai.

Tạo chương trình Java sau bằng cách sử dụng bất kỳ trình soạn thảo nào bạn chọn trong C: \> JAVA.

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
public class Java8Tester {
public static void main(String args[]) {
List list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
  // Predicate<Integer> predicate = n -> true
  // n is passed as parameter to test method of Predicate interface
  // test method will always return true no matter what value n has.

  System.out.println("Print all numbers:");

  //pass n as parameter
  eval(list, n->true);

  // Predicate<Integer> predicate1 = n -> n%2 == 0
  // n is passed as parameter to test method of Predicate interface
  // test method will return true if n%2 comes to be zero

  System.out.println("Print even numbers:");
  eval(list, n-> n%2 == 0 );

  // Predicate<Integer> predicate2 = n -> n > 3
  // n is passed as parameter to test method of Predicate interface
  // test method will return true if n is greater than 3.

  System.out.println("Print numbers greater than 3:");
  eval(list, n-> n > 3 );
}
public static void eval(List list, Predicate predicate) {
  for(Integer n: list) {

     if(predicate.test(n)) {
        System.out.println(n + " ");
     }
  }
}
}

Ở đây chúng ta đã chuyển qua giao diện Predicate, giao diện này nhận một đầu vào duy nhất và trả về Boolean.

Xác minh kết quả

Biên dịch lớp bằng trình biên dịch javac như sau:

C:\JAVA>javac Java8Tester.java

Bây giờ chạy Java8Tester như sau:

C:\JAVA>java Java8Tester

Nó sẽ tạo ra kết quả sau:

Print all numbers: 
1
2
3
4
5
6
7
8
9
Print even numbers:
2
4
6
8
Print numbers greater than 3:
4
5
6
7
8
9

Khóa học Java Full stack (IJFD)

LEAVE A REPLY

Please enter your comment!
Please enter your name here