Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 抽象类中未使用的实例变量_Java_Class_Oop_Abstract Class - Fatal编程技术网

Java 抽象类中未使用的实例变量

Java 抽象类中未使用的实例变量,java,class,oop,abstract-class,Java,Class,Oop,Abstract Class,我的抽象类及其子类有问题ActionDeck是Deck的一个子类,它包含ActionDeck的无参数构造函数,但每当我为deque和array list实例变量获取NullPointerException时,我的超类就拥有它。它还在VScode中将其标记为未使用。我不确定我是否正确地实现了它。我的代码有什么问题 Deck.java abstract class Deck<C> { protected Deque<C> deck; protected Ar

我的抽象类及其子类有问题
ActionDeck
Deck
的一个子类,它包含
ActionDeck
的无参数构造函数,但每当我为deque和array list实例变量获取
NullPointerException
时,我的超类就拥有它。它还在VScode中将其标记为未使用。我不确定我是否正确地实现了它。我的代码有什么问题

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<>();  
    }

非常感谢您的帮助,谢谢

Deck构造函数没有初始化成员-它声明了两个隐藏成员并初始化它们的局部变量。删除这些行上的类型声明,您将获得预期的行为:

public Deck () {
    deck = new ArrayDeque<>();
    temp = new ArrayList<>();  
}
公共甲板(){
甲板=新的ArrayDeque();
temp=新的ArrayList();
}

组构造函数没有初始化成员-它声明了两个隐藏成员并初始化它们的局部变量。删除这些行上的类型声明,您将获得预期的行为:

public Deck () {
    deck = new ArrayDeque<>();
    temp = new ArrayList<>();  
}
公共甲板(){
甲板=新的ArrayDeque();
temp=新的ArrayList();
}

请包含引发实际异常的
generateDeck()
方法的代码。请包含引发实际异常的
generateDeck()
方法的代码。哦,我完全错过了!非常感谢,它又起作用了。哦,我完全错过了!非常感谢,它又起作用了。
public Deck () {
    deck = new ArrayDeque<>();
    temp = new ArrayList<>();  
}