2
我以前的想法是,我必须编译接口以及实现类的实现类来理解属于接口的静态数据。在Java中,如果一个类实现了一个接口,是否需要编译该接口?
例如,如果接口有一个数据字段,public static final int six = 6
,如果我想使用这个类在编译的类使用six
并运行程序,并使用six
,我必须包括编译接口类也。
这似乎并不是这样,实现类如何知道它没有编译接口的这个数据字段?
我以前的想法是,我必须编译接口以及实现类的实现类来理解属于接口的静态数据。在Java中,如果一个类实现了一个接口,是否需要编译该接口?
例如,如果接口有一个数据字段,public static final int six = 6
,如果我想使用这个类在编译的类使用six
并运行程序,并使用six
,我必须包括编译接口类也。
这似乎并不是这样,实现类如何知道它没有编译接口的这个数据字段?
如果我想使用这个类在编译的类使用
six
并运行程序,并使用six
,我必须包括编译接口类也。
然而,一个static final
值将可能由Java编译器将恒定值被内联(在编译时间)。你可以用类似的方式检查字节码
javap -v MyClass.class
我应该在字节码中寻找什么? – Ares
还有什么内联? '最后','静态'?还是只有在将两者结合在一起的时候'static final'? – Ares