()"什么时候被调用?-6ren"> ()"什么时候被调用?-class Node { char val; boolean wordEnd; Map map = new HashMap<>(); public Node() {} -6ren">
gpt4 book ai didi

java - "map = new HashMap<>()"什么时候被调用?

转载 作者:行者123 更新时间:2023-11-29 05:06:18 26 4
gpt4 key购买 nike

class Node {
char val;
boolean wordEnd;
Map<Character, Node> map = new HashMap<>();

public Node() {}

public Node(char v) {
val = v;
}
}

在 Java 中,什么时候是 map = new HashMap<>()被召唤?

我看到这里有 2 个构造函数。但是什么时候调用“ map ”行?在构造函数之前还是之后?

另外,为什么我们可以定义mapnew像这样?在C++中,我认为这是不对的。

我认为我们应该声明 map首先,然后在构造函数中,我们 new

最佳答案

when is map = new HashMap<>() being called?

所有初始化器都按照它们在类文本中出现的顺序被调用。所有初始化器都在构造函数的代码开始之前完成,所以你不应该害怕你的 map还是null当你在构造函数中时。参见 section 12.5 of JLS了解详情。

Also, why can we define map with new like this? In C++, I think it is not right.

C++ 缺少这种语法,除了标准的更高版本中的静态初始值设定项。尽管 Java 和 C++ 借鉴了共同的资源,但它们仍然是非常不同的语言,背后有着截然不同的哲学。

关于java - "map = new HashMap<>()"什么时候被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30271297/

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