Sus*_*lam 1 java intellij-idea java-8
我理解接口方法是隐含的public.Java Docs教程说
界面中的所有
abstract,default和static方法都是隐式的public,因此您可以省略public修饰符.
在抽象,静态和默认情况下,在Java 8中隐式声明了哪些修饰符.
我认为abstractJava 8 default在接口中引入了方法时没有隐式声明,但我仍然在Intellij IDEA中收到警告.
abstract对于接口方法,修饰符' '是冗余的.
public interface TestInterface {
abstract int print(); // abstract redundant ?.
int print2(); //legal.but public or public abstract ?.
}
Run Code Online (Sandbox Code Playgroud)
该语言规范 -特别是第9.4节,规定abstract和public是隐含的.
接口主体中的每个方法声明都是隐式公共的(第6.6节).允许但不鼓励作为样式,在接口中冗余地指定方法声明的公共修饰符.
缺少默认修饰符或静态修饰符的接口方法是隐式抽象的,因此其主体由分号表示,而不是块.允许但不鼓励作为样式,为这种方法声明冗余地指定抽象修饰符.
这就是IntelliJ警告你的原因; 通过JLS,你正在做一些完全多余的事情.
作为奖励,接口中的字段是隐含的public static final:
接口主体中的每个字段声明都是隐式的public,static和final.允许为这些字段冗余地指定任何或所有这些修饰符.
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |