Java 我可以在接口中声明静态方法吗?

Java 我可以在接口中声明静态方法吗?,java,Java,参考: oracle文档说您可以在接口中声明静态方法,但如果我尝试在IDE中声明静态方法,它会给我带来错误。 当其他帖子显示我们不能在java中声明静态方法时?什么是正确的 我做错了什么?您使用的是哪个版本的java Java 8中增加了对接口中静态方法的支持。您使用的是哪个版本的Java Java 8中增加了对接口中静态方法的支持。您使用的是哪个版本的Java Java 8中增加了对接口中静态方法的支持。您使用的是哪个版本的Java Java 8中增加了对接口中静态方法的支持。这是Java 8

参考:

oracle文档说您可以在接口中声明静态方法,但如果我尝试在IDE中声明静态方法,它会给我带来错误。 当其他帖子显示我们不能在java中声明静态方法时?什么是正确的


我做错了什么?

您使用的是哪个版本的java


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

您使用的是哪个版本的Java


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

您使用的是哪个版本的Java


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

您使用的是哪个版本的Java


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

这是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 
}

}
公共接口打印机{
//此方法必须通过实现类实现
公开作废打印(字符串abc);
//此方法可以由实现类重写,也可以由实现类重写
默认公共void printAll(列表){
for(字符串str:list){
打印(str);
}
}
//这是一种静态方法
公共静态void打印日志(字符串str){
//做些不同的事情
}
}

您可能需要重新考虑在设计中哪里有抽象类。

这是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 
}

}
公共接口打印机{
//此方法必须通过实现类实现
公开作废打印(字符串abc);
//此方法可以由实现类重写,也可以由实现类重写
默认公共void printAll(列表){
for(字符串str:list){
打印(str);
}
}
//这是一种静态方法
公共静态void打印日志(字符串str){
//做些不同的事情
}
}

您可能需要重新考虑在设计中哪里有抽象类。

这是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 
}

}
公共接口打印机{
//此方法必须通过实现类实现
公开作废打印(字符串abc);
//此方法可以由实现类重写,也可以由实现类重写
默认公共void printAll(列表){
for(字符串str:list){
打印(str);
}
}
//这是一种静态方法
公共静态void打印日志(字符串str){
//做些不同的事情
}
}

您可能需要重新考虑在设计中哪里有抽象类。

这是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 
}

}
公共接口打印机{
//此方法必须通过实现类实现
公开作废打印(字符串abc);
//此方法可以由实现类重写,也可以由实现类重写
默认公共void printAll(列表){
for(字符串str:list){
打印(str);
}
}
//这是一种静态方法
公共静态void打印日志(字符串str){
//做些不同的事情
}
}

您可能需要重新考虑在设计中哪里有抽象类。

您需要Java 8才能在接口中允许静态方法。确保您的IDE知道您正在使用Java8。如果您告诉我们您使用的是什么IDE,那么我们可以为您提供更具体的帮助。好的,谢谢!我使用的是Java7。您需要Java8来允许接口中的静态方法。确保您的IDE知道您正在使用Java8。如果您告诉我们您使用的是什么IDE,那么我们可以为您提供更具体的帮助。好的,谢谢!我使用的是Java7。您需要Java8来允许接口中的静态方法。确保您的IDE知道您正在使用Java8。如果您告诉我们您使用的是什么IDE,那么我们可以为您提供更具体的帮助。好的,谢谢!我使用的是Java7。您需要Java8来允许接口中的静态方法。确保您的IDE知道您正在使用Java8。如果您告诉我们您使用的是什么IDE,那么我们可以为您提供更具体的帮助。好的,谢谢!我使用的是Java7。