小编Cob*_*yis的帖子

垃圾收集的频率如何?我不认为我的对象被删除了

如果我有一个类删除自己,它的内部方法应该停止执行吗?我有一个B类告诉A类从A的ArrayList中删除B. 我相当肯定B只存在于A的ArrayList中,所以当我删除它时,它应该被删除,对吧?(注意:我已经包含了一个Serializable实现,以防万一与VM如何处理我的类有关,但我没有在这里写read-和writeObject方法.我怀疑它与它有什么关系这个问题虽然.)

public class A implements Serializable, B_Listener {
    ArrayList<B> bArray;

    public A() {
        bArray = new ArrayList<SomeObject>();
        bArray.add(new B(bArray.size(), this));
    }

    @Override
    public void deleteAtIndex(int index) {
        bArray.remove(index);
    }
}

public class B implements Serializable {
    B_Listener listener;
    int index;

    public B(B_Listener listener, int index) {
        this.listener = listener;
        this.index = index;
    }

    //This is called at some point in a B's lifetime.
    private void selfDestruct() {
        listener.deleteAtIndex(index);
        Log.w("B.class", "Should this not output? It does.");
    }
}

public interface …
Run Code Online (Sandbox Code Playgroud)

java methods garbage-collection execution android-view

2
推荐指数
1
解决办法
148
查看次数