gpt4 book ai didi

Java 未经检查的异常

转载 作者:行者123 更新时间:2023-11-30 09:21:24 25 4
gpt4 key购买 nike

谁能告诉我为什么这个方法会抛出未经检查或不安全的异常?我知道当我尝试编辑我正在迭代的列表时会发生这种情况......在下面,currentAdvanceTactics 等根本没有被迭代。

    public void tacticMeetsRequirements(ArrayList<Tactics> master) {

for (Tactics a : master) {
if (meetsrequirements(a)) {
if (a.movement.equals("Advance")) {
currentAdvanceTactics.add(a);
} else if (a.movement.equals("Retreat")) {
currentRetreatTactics.add(a);
} else if (a.movement.equals("Guard")) {
currentGuardTactics.add(a);
}
}
}

}

主列表中使用的对象是这样创建的:

    for (int b = 0; b < numberoftactics; b++) {
tactic[b] = new Tactics(parsedTactics[b]);
tacticsMaster.add(tactic[b]);
}

parsedTactics 只是读取到不同变量的原始数据。

tacticsMaster 是这样声明的:

public ArrayList<Tactics> tacticsMaster;

然后当我创建包含在其中的对象时:

this.tacticsMaster = new ArrayList<Tactics>();

currentAdvanceTactics 列表等都是这样创建的:

    public ArrayList currentGuardTactics = new ArrayList<Tactics>();
public ArrayList currentAdvanceTactics = new ArrayList<Tactics>();
public ArrayList currentRetreatTactics = new ArrayList<Tactics>();

在此先感谢您的帮助!

最佳答案

您正在使用原始版本的通用类型 (ArrayList<T>)。这就是您收到警告的原因。

public ArrayList currentGuardTactics = new ArrayList<Tactics>();
public ArrayList currentAdvanceTactics = new ArrayList<Tactics>();
public ArrayList currentRetreatTactics = new ArrayList<Tactics>();

尝试使用参数化版本 -

public List<Tactics> currentGuardTactics = new ArrayList<Tactics>();
public List<Tactics> currentAdvanceTactics = new ArrayList<Tactics>();
public List<Tactics> currentRetreatTactics = new ArrayList<Tactics>();

关于Java 未经检查的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17036269/

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