super也无能为力?我感觉我跑偏了~
- Java code
public class nbl extends B { int i = 3; public void f() { System.out.println(i); System.out.println(super.i); //怎能到A中的i? } public static void main(String[] args) { new nbl().f(); }}class A { int i = 1;}class B extends A { int i = 2;}也许只能通过在B中写一个方法来完成了吧。。
[解决办法]
this.getClass().getSuperclass().getSuperclass().getDeclaredField("i").getInt(this)
……不知道还有没更好的方法……
[解决办法]
可以简短点点:A.class.getDeclaredField("i").getInt(this);
不过如果有这种应用场景,说明程序设计出问题了。
[解决办法]
System.out.println(i);
System.out.println(super.i);
System.out.println(((A)this).i);