我有一个类 (A),其构造函数定义如下所示。在构造函数中,我通过将监听器(接口(interface))实现传递给 B 创建了一个对象,如下所示。
public class A {
private String str;
public A() {
new B(new OnStringUpdatedListener() {
public void onStringUpdated(String str) {
A.this.str = str;
}
});
}
}
在上面的代码中,B 的对象没有分配给 A 的任何字段或构造函数中的变量。
B 的对象的生命周期是多少?它是在构造函数执行完成后立即被标记为垃圾收集,还是它仍然存在,因为它注册了一个修改 A 字段的监听器。
最佳答案
@Thomas 的评论很好。
OnStringUpdatedListener
修改什么并不重要。执行构造函数后,将无法通过任何引用访问 B
。它将符合 GC 的条件并且可能被垃圾收集。
关于java - 在java的构造函数中创建的未分配对象的生命周期是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159465/