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 匿名内部类对象持有外部类对象的引用相关推荐
- java内部类为什么会持有外部类的引用_为什么内部类持有外部类的引?
对普通类(没有内部类的类)来说,内部类和外部类都与他无关:对有内部类的类来说,它们就是其内部类的外部类,外部类是个相对的说法,其实就是有内部类的类.所以,要回答这个问题,只需要讲解内部类是什么:Jav ...
- java 匿名内部类对象持有外部类对象的引用
转载自:https://www.jianshu.com/p/9335c15c43cf /*** @author hgl* @data 2019年1月10日* @description 接口*/ pub ...
- java 匿名类调用方法_Java匿名内部类使用与示例
首先说为什么有匿名类(产生的使命) 两个原因 1.简化代码编写 某种情况下,类只需要扩展一个方法,没必要为了一个方法单独去写一个子类,然后然后调用子类,此时需要匿名类 2.在不同的包内的类内调用类的p ...
- 在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象
在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象 我们知道,在 Java 中,创建一个内部类对象之前,需要它的一个外部类对象.这是因为内部类可能使用外部类的数据. 在内部类中 ...
- java内部类gc_Java内部类持有外部类的引用详细分析与解决方案
在Java中内部类的定义与使用一般为成员内部类与匿名内部类,他们的对象都会隐式持有外部类对象的引用,影响外部类对象的回收. GC只会回收没有被引用或者根集不可到达的对象(取决于GC算法),内部类在生命 ...
- java内部类为什么会持有外部类的引用_java中内部类为什么会持有外部类的引用?...
当我们分析内存泄漏的场景时,总会想到不能在内部类中做耗时操作,因为它会持有外部类的因为,导致外部类的实例在生命周期结束的时候没有办法及时释放,这就造成了内存泄漏. 好像这就是一个公理一样,就是人们说着 ...
- 匿名内部类 可以访问外部类_Java——内部类详解
说起内部类,大家肯定感觉熟悉又陌生,因为一定在很多框架源码中有看到别人使用过,但又感觉自己使用的比较少,今天我就带你具体来看看内部类. 内部类基础 所谓内部类就是在类的内部继续定义其他内部结构类. 在 ...
- Java内存泄露系列--内部类持有外部类导致内存泄露--原因/解决方案
原文网址:Java内存泄露系列--内部类持有外部类导致内存泄露--原因/解决方案_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java内部类持有外部类导致内存泄露的原因以及其解决方案. 为什么内部 ...
- java怎么判断类相同_java中如何判定两个对象属于同一类 两个对象是不是类的相同实例,即用“===”是什么意思...
导航:网站首页 > java中如何判定两个对象属于同一类 两个对象是不是类的相同实例,即用"==="是什么意思 java中如何判定两个对象属于同一类 两个对象是不是类的相同实 ...
最新文章
- java语言的实现机制_JAVA语言之Java NIO的工作机制和实现原理介绍
- Java数据结构--有序表
- C#中怎样连接数据库并将查询结果转为实体类以及如何加入事务
- 【MFC】BitBlt详解
- JAVA 串口编程(二)
- linux 关于目录的命令,Linux ---- 关于目录基本命令
- 我的邮箱又收到了一封信,这一次,关乎爱情
- mysql从挂了数据怎么恢复_详解MySQL误操作后怎样进行数据恢复
- cimiss数据_CIMISS数据下载小助手
- Essential Booklist of .Net Framework
- C++ 只要一句,输入重定向。讲讲编程竞赛本机调试技巧
- 明解java.pdf_明解C语言:中级篇 PDF下载
- 思科网络综合实验(服务器,三层交换机,路由器)
- 哲学家就餐问题之管程
- ps入门教程、ps修图基本工具使用方法视频教学
- 推动和规范编程教育纳入中小学相关课程加强师资建设(2020)
- Win10双网卡不双待攻略
- 东南大学和南京大学的计算机哪个好考,江苏最好的5所211除了南京大学和东南大学2所985,谁是第五有争议...
- matlab ilu函数,不完全 LU 分解
- ubuntu-sudo命令