gpt4 book ai didi

java - 如何在 Java 中使用匿名类重载方法?

转载 作者:行者123 更新时间:2023-12-03 18:20:44 24 4
gpt4 key购买 nike

我有一个类 Action,它有一个名为 doAction() 的方法。对于我添加到名为 allActions 的 Action 列表中的每个新 Action ,此方法的存在只是为了覆盖它。

public void doAction() {
System.out.println("Overload this method.");
}

操作列表存储在以下列表中:

public static List<Action> allActions = new ArrayList<Action>();

并通过如下调用添加到此列表中:

allActions.add(
new Action(id){
public void doAction(Word w1, Word w2) {
//perform some action
}
}
);

但是这段代码对我不起作用。当我尝试访问 allActions 列表中覆盖的 doAction() 方法时,它只执行默认方法。

我怀疑问题在于 allActions 是一个 Action 对象的列表,所以当它被添加到列表中时,可能类型正在从匿名类中更改,并恢复为默认方法。

关于如何维护 Action 类的不同匿名版本列表的任何想法?我希望能够根据提供给操作的 id 调用这些不同的 doAction() 方法。

对了,我还是第一次接触匿名类。我认为我理解这个概念,但实际使用它们是另一回事。

最佳答案

您正在使用 public void doAction(Word w1, Word w2) 但您在父级中有 public void doAction()。所以父方法不会被覆盖。

关于java - 如何在 Java 中使用匿名类重载方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13757320/

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