public Inner h() {
       return new Inner() {
         void g() {}      
       };
    System.out.println("i = " + i);  
}这个方法到了return new Inner(){....}这一行就返回了,
不可能运行到System.out.println("i = " + i);  这一行.所以有编译器错误.
改为:
public Inner h() {
       Inner inner = new Inner() {
         void g() {}      
       };
    System.out.println("i = " + i);  
    return inner;
}