接口中定义的域不能是"空 fianl", 但可以被非常量表达式初始,域是static,可以在类第一次被加载时初始化,这发生在任何域首次被访问时.当然这不是接口的一部分,它们的值被储存在静态存储区内
//: interfaces/RandVals.java package object; // Initializing interface fields with // non-constant initializers. import java.util.*; public interface RandVals { Random RAND = new Random(47); int RANDOM_INT = RAND.nextInt(10); long RANDOM_LONG = RAND.nextLong() * 10; float RANDOM_FLOAT = RAND.nextLong() * 10; double RANDOM_DOUBLE = RAND.nextDouble() * 10; } ///:~ //: interfaces/TestRandVals.java package object; import static net.mindview.util.Print.*; public class TestRandVals { public static void main(String[] args) { print(RandVals.RANDOM_INT); print(RandVals.RANDOM_LONG); print(RandVals.RANDOM_FLOAT); print(RandVals.RANDOM_DOUBLE); } } /* Output: 8 -32032247016559954 -8.5939291E18 5.779976127815049 *///:~