gpt4 book ai didi

java - new Class(...){{...}} 初始化习语的含义

转载 作者:IT老高 更新时间:2023-10-28 20:39:52 24 4
gpt4 key购买 nike

下面代码中的{{ ... }} block 是什么意思?

class X {

private Y var1;

private X() {
Z context = new Z(new SystemThreadPool()) {{
var1 = new Y();
}};
}

}

最佳答案

它叫做 double curly brace initialization . (编辑:链接已删除,archived here)

这意味着您正在创建一个匿名子类,而双括号内的代码基本上是一个构造函数。它通常用于向集合添加内容,因为 Java 用于创建本质上是集合常量的语法有些笨拙。

所以你可以这样做:

List<String> list = new ArrayList<String>() {{
add("one");
add("two");
add("three");
}};

代替:

List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");

我其实不喜欢这样,我更喜欢这样做:

List<String> list = Arrays.asList("one", "two", "three");

所以在这种情况下它没有多大意义,而对于没有方便的助手的 map 来说,它没有多大意义。

关于java - new Class(...){{...}} 初始化习语的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1372113/

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