https://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html
参考:Why can't I declare static methods in an interface?
oracle文档说你可以在界面中声明静态方法,但如果我尝试在IDE中执行它会引发我错误。 虽然其他帖子表明我们不能在java中声明静态方法?什么是正确的?
我做错了什么?
答案 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
}
}
您可能想重新考虑设计中抽象类的位置。