【发布时间】:2020-09-20 04:53:48
【问题描述】:
我的抽象类及其子类有问题。 ActionDeck 是 Deck 的子类,其中包含 ActionDeck 的无参数构造函数,但每当我为我的超类拥有的双端队列和数组列表实例变量获得 NullPointerException 时。它还在 VScode 中将其标记为 unused。我不确定我是否正确实施它。我的代码有什么问题?
Deck.java
abstract class Deck<C> {
protected Deque<C> deck;
protected ArrayList<C> temp;
public Deck () {
Deque<C> deck = new ArrayDeque<>();
ArrayList<C> temp = new ArrayList<>();
}
ActionDeck.java
public class ActionDeck extends Deck<ActionCard> {
public ActionDeck() {
super();
}
所以当我尝试在 ActionDeck 的数组列表中添加一些内容时,它会吐出一个错误:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.ArrayList.add(Object)" because "this.temp" is null
at ActionDeck.generateDeck(ActionDeck.java:26)
at Board.initializeData(Board.java:30)
at Main.main(Main.java:10)
我们将不胜感激,谢谢!
【问题讨论】:
-
请包含
generateDeck()方法的代码,这是实际抛出异常的地方。
标签: java class oop abstract-class