3 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
不,因为没有预编译器。但是,根据您的情况,您可以实现以下相同的目的:
class MyClass
{
private static final int PROTEINS = 0;
...
MyArray[] foo = new MyArray[PROTEINS];
}
编译器会注意到PROTEINS永远不会改变,因此会内联它,这或多或少是您想要的。
请注意,在不断的访问修饰符是不重要的在这里,所以它可能是public或protected不是的私人,如果你想重复使用多个类相同的常数。
扬帆大鱼
TA贡献1799条经验 获得超9个赞
static final int PROTEINS = 1
...
myArray[PROTEINS]
您通常会在类本身中添加“常量”。并请注意,允许编译器优化对它的引用,因此除非您重新编译所有使用类,否则请勿对其进行更改。
class Foo {
public static final int SIZE = 5;
public static int[] arr = new int[SIZE];
}
class Bar {
int last = arr[Foo.SIZE - 1];
}
编辑循环... SIZE=4。也进行编译,Bar因为您的编译器在上一个编译周期中可能刚刚写了“ 4”!
添加回答
举报
0/150
提交
取消