gpt4 book ai didi

java - 创建了多少本地方法匿名类?

转载 作者:行者123 更新时间:2023-11-30 07:04:42 26 4
gpt4 key购买 nike

考虑这个类:

public class Activity {

public ArrayList<testInterface> containerListener = new ArrayList<testInterface>();

public void metodoDiProva(int num) {
final int finalNum = num;

containerListener.add(new testInterface() {

@Override
public void metodoDiProva() {
System.out.println(finalNum);
}
});
}
}

现在看看这个方法:

public void metodoDiProva(int num) {
final int finalNum = num;

containerListener.add(new testInterface() {

@Override
public void metodoDiProva() {
System.out.println(finalNum);
}
});
}

假设 metodoDiProva(int num) 被调用了 2 次,例如:

activityObj.metodoDiProva(10);
activityObj.metodoDiProva(20);

所以在listener的arrayList中有2个对象:

第一个监听器对象可以使用finalNum变量,这个变量的是10
第二个监听器对象可以使用finalNum变量,这个变量的是20

问题是:
内存中有 2 个不同的 InnerClas 还是只有 1 个?

最佳答案

没有,只有一个内部类;有两个例子。当你编译Activity时,你会看到两个.class文件:Activity.classActivity$1.class,其中Activity$1。 class 代表你的匿名内部类。

关于java - 创建了多少本地方法匿名类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27390401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com