java 匿名对象有引用_java 匿名内部类对象持有外部类对象的引用
轉載自:https://www.jianshu.com/p/9335c15c43cf
/**
* @author hgl
* @data 2019年1月10日
* @description 接口
*/
public interface TestInterface {
public void innerMethod();
}
/**
* @author hgl
* @data 2019年1月10日
* @description
*/
public class TestClass {
public TestClass(){
TestInterface ti = new TestInterface(){
@Override
public void innerMethod() {
classMethod();
}
};
ti.innerMethod();
Class clazz = ti.getClass();
Field[] fields = clazz.getDeclaredFields();
for(Field field : fields){
System.out.println(field.getName());
try {
//返回指定對象上此 Field 表示的字段的值
System.out.println(field.get(ti));
} catch (IllegalArgumentException | IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Field declaredField;
try {
// this$0是上面打印出來的(field.getName)變量的名稱,所以這里就直接使用了
declaredField = clazz.getDeclaredField("this$0");
System.out.println("反射this$0:"+declaredField.get(ti));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void classMethod(){
System.out.println("匿名內部類調用了外部類方法");
}
}
總結
以上是生活随笔為你收集整理的java 匿名对象有引用_java 匿名内部类对象持有外部类对象的引用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 撒野广播剧的同人图是谁画的呢?
- 下一篇: 上海大众1.6santana换前挡风玻璃