JAVA接口中实例变量的公共静态最终声明

Shr*_*ari 10 java interface

为什么我们public static final在Java接口中使用实例变量的声明?
所有变量都隐含public static final在Java接口中.在常量变量中
使用public static final它是一种很好的编码实践,尽管它是在接口内声明的.

例如 :

public interface TestInterface{

public static final String EX_CONSTANT = "ABC";
public static final int EX_INT_CONSTANT = 5;
public static final double EX_DOUBLE = 5.0;
public static final Integer EX_INTEGER = 10;

}
Run Code Online (Sandbox Code Playgroud)

axt*_*avt 11

在类和接口中使用统一语法简化了重构.

您可能希望将来interface转变为class某个地方,或将这些字段移动到一个类中,如果忽略某些定义的字段public static final(当然,我们有重构工具,但仍然如此),您将获得语义差异.

我认为这与@Overriden在Java 6中引入的接口中声明的方法的实现的注释支持相同- 它在当前形式中是多余的,但在重构的情况下可能变得有用.


Sub*_*der 5

我不这么认为.所有接口变量都是隐式公共静态final,所以没有意义将它们标记为相同.