我可以在界面中声明静态方法吗?

时间:2014-12-08 16:51:26

标签: java

https://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html

参考:Why can't I declare static methods in an interface?

oracle文档说你可以在界面中声明静态方法,但如果我尝试在IDE中执行它会引发我错误。 虽然其他帖子表明我们不能在java中声明静态方法?什么是正确的?

我做错了什么?

2 个答案:

答案 0 :(得分:3)

您使用的是哪个版本的java?

Java 8中添加了对接口中静态方法的支持。

答案 1 :(得分:0)

这是一个新的Java 8功能以及一些更酷的技巧。您可以定义静态方法,默认方法以避免在所有实现类中使用太多不需要的代码,或者在添加新方法时使接口向后兼容。

示例:

public interface Printer {

//This method must implement by implementation class
public void print(String abc);

//This method may or may override by implementation class
default public void printAll(List<String> list){
    for(String str: list){
        print(str);
    }
}

//This is a static method 
public static void printLog(String str){
    //Do something different 
}

}

您可能想重新考虑设计中抽象类的位置。

相关问题