【发布时间】:2015-09-11 02:31:06
【问题描述】:
我之前的想法是,我必须将接口与实现类一起编译,以便实现类理解属于接口的静态数据。
例如,如果接口有一个数据字段public static final int six = 6,如果我想在编译的类中使用six并使用该类运行程序并使用six,我必须包含编译的接口也上课。
好像不是这样,实现类怎么知道自己有这个数据域,没有编译好的接口?
【问题讨论】:
我之前的想法是,我必须将接口与实现类一起编译,以便实现类理解属于接口的静态数据。
例如,如果接口有一个数据字段public static final int six = 6,如果我想在编译的类中使用six并使用该类运行程序并使用six,我必须包含编译的接口也上课。
好像不是这样,实现类怎么知道自己有这个数据域,没有编译好的接口?
【问题讨论】:
如果我想在编译后的类中使用
six,并使用该类运行程序并使用six,我还必须包含编译后的接口类。
然而,static final 值可能会被 java 编译器内联到常量值(在编译时)。您可以使用类似的东西检查字节码
javap -v MyClass.class
【讨论】:
final, static?还是只有将两者放在一起static final?