我在分配最终变量时遇到了一些奇怪的行为。你可以在构造函数中分配一个最终变量来初始化它,这是有道理的。但是你不能做同样在子类中,即使最终的变量是子类中的一员 -最终的奇怪java分配规则
public class FinalTest {
public final String name;
public FinalTest()
{
name = "FinalTest";
}
public static class FinalTestSubclass extends FinalTest {
public FinalTestSubclass()
{
name = "FinalTestSubclass"; //<---- this won't compile, assignment to final variable.
}
}
}
有人能想到一个很好的理由,为什么这应该/会以这种方式工作?
没关系,在第二个构造函数中重新分配,没有看到它。 – 2010-09-07 20:18:27