gpt4 book ai didi

java - 方法/构造函数中的 ArrayList - Java

转载 作者:搜寻专家 更新时间:2023-11-01 01:27:59 27 4
gpt4 key购买 nike

在谷歌搜索后我找不到答案,我对 Java 不太熟悉,我大部分时间使用 C#,我知道使用 C# 是可能的,而且可能是在 Java 中.

Ps:不好意思,这里的Highlight我不知道怎么用。

我有一个构造函数:

public WeaponsData(ArrayList<NPC> _drop, ArrayList<NPC> _buy, ArrayList<NPC> _sell) { }

然后,当我尝试创建直接在其上创建 ArrayLists() 的对象时,它不起作用:

public static WeaponsData AngelicAxe = new WeaponsData(new ArrayList<NPC>() { new NPC("Rat", "None", 0), new NPC("Dog", "None", 0) },
new ArrayList<NPC>() { new NPC("Player", "All", 0) },
new ArrayList<NPC>() { new NPC("Cain", "First", 5000) }
);

在 Java 上没有办法做到这一点吗?

谢谢

最佳答案

ArrayList 没有执行此操作所需的构造函数。您可以将参数包装在对 Arrays.asList() 的调用中:

public static WeaponsData AngelicAxe = new WeaponsData(
new ArrayList<NPC>(
Arrays.asList(
new NPC("Rat", "None", 0),
new NPC("Dog", "None", 0)
)
),
// etc
);

或使用 Guava Framework 提供的工厂方法:

public static WeaponsData AngelicAxe = new WeaponsData(
Lists.newArrayList(
new NPC("Rat", "None", 0),
new NPC("Dog", "None", 0)
),
// etc.
);

当然,如果您使用 Guava,您可能应该改用不可变集合,因为您显然是在尝试实现一个常量:

public static final WeaponsData ANGELIC_AXE = new WeaponsData(
ImmutableList.of(
new NPC("Rat", "None", 0),
new NPC("Dog", "None", 0)
),
// etc.
);

关于java - 方法/构造函数中的 ArrayList - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144460/

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