转载自: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. java内部类为什么会持有外部类的引用_为什么内部类持有外部类的引?

    对普通类(没有内部类的类)来说,内部类和外部类都与他无关:对有内部类的类来说,它们就是其内部类的外部类,外部类是个相对的说法,其实就是有内部类的类.所以,要回答这个问题,只需要讲解内部类是什么:Jav ...

  2. java 匿名内部类对象持有外部类对象的引用

    转载自:https://www.jianshu.com/p/9335c15c43cf /*** @author hgl* @data 2019年1月10日* @description 接口*/ pub ...

  3. java 匿名类调用方法_Java匿名内部类使用与示例

    首先说为什么有匿名类(产生的使命) 两个原因 1.简化代码编写 某种情况下,类只需要扩展一个方法,没必要为了一个方法单独去写一个子类,然后然后调用子类,此时需要匿名类 2.在不同的包内的类内调用类的p ...

  4. 在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象

    在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象   我们知道,在 Java 中,创建一个内部类对象之前,需要它的一个外部类对象.这是因为内部类可能使用外部类的数据.   在内部类中 ...

  5. java内部类gc_Java内部类持有外部类的引用详细分析与解决方案

    在Java中内部类的定义与使用一般为成员内部类与匿名内部类,他们的对象都会隐式持有外部类对象的引用,影响外部类对象的回收. GC只会回收没有被引用或者根集不可到达的对象(取决于GC算法),内部类在生命 ...

  6. java内部类为什么会持有外部类的引用_java中内部类为什么会持有外部类的引用?...

    当我们分析内存泄漏的场景时,总会想到不能在内部类中做耗时操作,因为它会持有外部类的因为,导致外部类的实例在生命周期结束的时候没有办法及时释放,这就造成了内存泄漏. 好像这就是一个公理一样,就是人们说着 ...

  7. 匿名内部类 可以访问外部类_Java——内部类详解

    说起内部类,大家肯定感觉熟悉又陌生,因为一定在很多框架源码中有看到别人使用过,但又感觉自己使用的比较少,今天我就带你具体来看看内部类. 内部类基础 所谓内部类就是在类的内部继续定义其他内部结构类. 在 ...

  8. Java内存泄露系列--内部类持有外部类导致内存泄露--原因/解决方案

    原文网址:Java内存泄露系列--内部类持有外部类导致内存泄露--原因/解决方案_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java内部类持有外部类导致内存泄露的原因以及其解决方案. 为什么内部 ...

  9. java怎么判断类相同_java中如何判定两个对象属于同一类 两个对象是不是类的相同实例,即用“===”是什么意思...

    导航:网站首页 > java中如何判定两个对象属于同一类 两个对象是不是类的相同实例,即用"==="是什么意思 java中如何判定两个对象属于同一类 两个对象是不是类的相同实 ...

最新文章

  1. java语言的实现机制_JAVA语言之Java NIO的工作机制和实现原理介绍
  2. Java数据结构--有序表
  3. C#中怎样连接数据库并将查询结果转为实体类以及如何加入事务
  4. 【MFC】BitBlt详解
  5. JAVA 串口编程(二)
  6. linux 关于目录的命令,Linux ---- 关于目录基本命令
  7. 我的邮箱又收到了一封信,这一次,关乎爱情
  8. mysql从挂了数据怎么恢复_详解MySQL误操作后怎样进行数据恢复
  9. cimiss数据_CIMISS数据下载小助手
  10. Essential Booklist of .Net Framework
  11. C++ 只要一句,输入重定向。讲讲编程竞赛本机调试技巧
  12. 明解java.pdf_明解C语言:中级篇 PDF下载
  13. 思科网络综合实验(服务器,三层交换机,路由器)
  14. 哲学家就餐问题之管程
  15. ps入门教程、ps修图基本工具使用方法视频教学
  16. 推动和规范编程教育纳入中小学相关课程加强师资建设(2020)
  17. Win10双网卡不双待攻略
  18. 东南大学和南京大学的计算机哪个好考,江苏最好的5所211除了南京大学和东南大学2所985,谁是第五有争议...
  19. matlab ilu函数,不完全 LU 分解
  20. ubuntu-sudo命令

热门文章

  1. Jupyter Magic - Timing(%%time %time %timeit)
  2. SpringSecurity安全验证中文乱码问题
  3. SQL函数Group_concat用法
  4. NVIDIA GPU的快速傅立叶变换
  5. MLIR算子量化Quantization
  6. 2021年大数据Hadoop(四):Hadoop发行版公司
  7. DOS命令大全 黑客必知的DOS命令集合
  8. android 键盘右下角回车改为搜索
  9. 随心测试_软测基础_005 测试人员工作内容
  10. 构造方法与setXxx方法