Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ตัวแปร/เมธอดแบบใดที่กำหนดใน Interface ได้ใน Java 9

ฟีเจอร์ใหม่ใน Java 9: Private Methods ใน Interface

ตั้งแต่ Java 9 สามารถเพิ่ม private methods และ private static methods ใน interface ได้ ช่วยลด code duplication ระหว่าง default และ static methods

รายการสมาชิกที่ Interface รองรับใน Java 9

  • Constant (public static final fields)
  • Abstract method
  • Default method
  • Static method
  • Private method (ใหม่)
  • Private Static method (ใหม่)

ตัวอย่าง: Private Static Method ช่วยลดซ้ำ

import java.util.*;
import java.util.stream.*;

interface InterfaceTest {
    static void printEvenNumbers() {
        getDataStream().filter(i -> i%2==0).forEach(System.out::println);
    }
    static void printOddNumbers() {
        getDataStream().filter(i -> i%2!=0).forEach(System.out::println);
    }
    // Private static method - ใช้ร่วมได้ภายใน interface
    private static Stream<Integer> getDataStream() {
        List<Integer> list = Arrays.asList(10, 13, 5, 15, 12, 20, 11, 25, 16);
        return list.stream();
    }
}

public class InterfacePrivateMethodTest implements InterfaceTest {
    public static void main(String args[]) {
        System.out.println("The even numbers: ");
        InterfaceTest.printEvenNumbers();
        System.out.println("The odd numbers: ");
        InterfaceTest.printOddNumbers();
    }
}

Output

The even numbers: 10 12 20 16
The odd numbers: 13 5 15 11 25

ประโยชน์ของ Private Methods ใน Interface

  • ลด code duplication ระหว่าง default/static methods
  • ซ่อน implementation details ภายใน interface
  • เพิ่มความ maintainable และ readable

สรุป

Java 9 ทำให้ Interface มีความสามารถใกล้เคียง Class มากขึ้น รองรับ private methods ทั้ง instance และ static