接口除了表示方法的集合之外,经常被用来作为常量类。因为接口做常量类更加简洁。只需要像下面这样:
public interface StringConsts {
String EMPTY_STRING = "";
}
我们可以看见EMPTY_STRING只需要声明类型即可,形式非常简洁。
今天,我打算从反编译角度看看,我们在接口中只声明类型的域,在编译后是个什么样子。
这是编译和反编译的结果,原来,javac会自动的为接口中的域加上public static final修饰符。
也因此,推荐大家用接口来作为常量类,并且声明常量时只需要声明类型即可,这样可以让阅读的人聚焦于常量本身。