जावा 9 से, हम इंटरफेस में प्राइवेट मेथड और प्राइवेट स्टेटिक मेथड जोड़ सकते हैं। इंटरफेस में प्राइवेट मेथड का उपयोग करने का लाभ डिफ़ॉल्ट और स्टेटिक मेथड के बीच कोड डुप्लीकेशन को कम करना है। उदाहरण के लिए, यदि दो या अधिक डिफ़ॉल्ट मेथड को कुछ कोड साझा करने की आवश्यकता है, तो एक प्राइवेट मेथड बनाया जा सकता है और प्रत्येक डिफ़ॉल्ट मेथड से कॉल किया जा सकता है।
जावा 9 में, इंटरफेस में निम्नलिखित वेरिएबल/मेथड परिभाषित किए गए हैं।
- कॉन्स्टेंट
- एब्सट्रैक्ट मेथड
- डिफ़ॉल्ट मेथड
- स्टेटिक मेथड
- प्राइवेट मेथड
- प्राइवेट स्टेटिक मेथड
उदाहरण
import java.util.*;
import java.util.stream.*;
interface InterfaceTest {
static void printEvenNumbers() {
getDataStream().filter(i -> i%2==0).forEach(System.out::println);
}
static void printLOddNumbers() {
getDataStream().filter(i -> i%2!=0).forEach(System.out::println);
}
private static Stream getDataStream() {
// private static method
List 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.printLOddNumbers();
}
}
आउटपुट
The even numbers: 10 12 20 16 The odd numbers: 13 5 15 11 25