class WithBlankFinal  {
  private final Integer i;
  // Without this constructor, I got a compile-
  // time error about initialization:
  public WithBlankFinal(int ii) {
    i = new Integer(ii);
  }
  public Integer geti() {
    // This wouldn't compile:
    if(i == null)
     i = new Integer(47);
    return i;
  }
}public class A {
  public static void main(String args[]) {
    WithBlankFinal wbf = new WithBlankFinal(10);
    System.out.println(wbf.geti());
  }

这是thinking in Java中关于空白final 的一个习题,书上说必须在使用前初始化.我认为
public Integer geti() {
    // This wouldn't compile:
    if(i == null)
     i = new Integer(47);
    return i;
  }
这几行代码也保证了使用前初始化了啊,我认为这个"使用"应该指的是这里System.out.println(wbf.geti());
所以应该满足语法要求.
但编译不能通过.
请各位帮帮忙!提前道谢了 !!