gpt4 book ai didi

java - Java 中 {} 和 {{}} 初始化的区别

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:41:55 24 4
gpt4 key购买 nike

public class A{
}

A a = new A(){{
final int x = 1; // IT HAS TO BE FINAL HERE. WHY?
}};

A aa = new A(){
int x = 1; // THIS NEED NOT BE FINAL. WHY?
final int y = 1; // STILL FINAL IS ALLOWED HERE. WHY?
public int getX(){
return x;
}
};

有人可以回答片段中提到的问题吗?

谢谢

最佳答案

{} 的外部集合声明了一个匿名子类

内部集合在该子类中声明了一个初始化 block 。

通过下面的示例,可以更容易地理解发生了什么:

List<String> strings = new ArrayList<String>() {{
add("string");
add("another string");
}};

你基本上是说:我想要一个 List 的子类,它在初始化时调用方法 add

类似于:

List<String> strings = new ArrayList<String>();
strings.add("string");
strings.add("another string");

关于java - Java 中 {} 和 {{}} 初始化的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8109084/

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