Java9 私有接口方法

1 Java9 私有接口方法的介绍

在Java 9中,我们可以在接口内创建私有方法。接口允许我们声明私有方法,这些方法有助于在非抽象方法之间共享通用代码。

在Java 9之前,在接口内创建私有方法会导致编译时错误。以下示例使用Java 8编译器进行编译,并引发编译时错误。

2 Java9 私有接口方法:Java9以前

/**
 * 一点教程网: http://www.yiidian.com
 */
interface Sayable{  
    default void say() {  
        saySomething();  
    }  
    // Private method inside interface  
    private void saySomething() {  
        System.out.println("Hello... I'm private method");  
    }  
}  
public class PrivateInterface implements Sayable {  
    public static void main(String[] args) {  
        Sayable s = new PrivateInterface();  
        s.say();  
    }  
} 

输出结果为:

PrivateInterface.java:6: error: modifier private not allowed here

3 Java9 私有接口方法:Java9以后

现在,让我们使用Java 9执行以下代码。看到输出,它可以正常执行。

/**
 * 一点教程网: http://www.yiidian.com
 */
interface Sayable{  
    default void say() {  
        saySomething();  
    }  
    // Private method inside interface  
    private void saySomething() {  
        System.out.println("Hello... I'm private method");  
    }  
}  
public class PrivateInterface implements Sayable {  
    public static void main(String[] args) {  
        Sayable s = new PrivateInterface();  
        s.say();  
    }  
}  

输出结果为:

Hello... I'm private method

4 Java9 私有接口方法的案例

这样,我们也可以在接口内部创建私有静态方法。请参见以下示例。

/**
 * 一点教程网: http://www.yiidian.com
 */
interface Sayable{  
    default void say() {  
        saySomething(); // Calling private method  
        sayPolitely(); //  Calling private static method  
    }  
    // Private method inside interface  
    private void saySomething() {  
        System.out.println("Hello... I'm private method");  
    }  
    // Private static method inside interface  
    private static void sayPolitely() {  
        System.out.println("I'm private static method");  
    }  
}  
public class PrivateInterface implements Sayable {  
    public static void main(String[] args) {  
        Sayable s = new PrivateInterface();  
        s.say();  
    }  
}  

输出结果为:

Hello... I'm private method
I'm private static method

 

热门文章

优秀文章