Java 接受对象数组的类然后添加到ArrayList

Java 接受对象数组的类然后添加到ArrayList,java,arrays,object,arraylist,Java,Arrays,Object,Arraylist,下面我有一门狗课和一门狗屋课。我对java相当陌生,所以我不清楚如何创建一个Doghouse类,该类具有一个接受Dogs数组并将其添加到ArrayList的构造函数。我下面的代码有意义吗 public class Dog{ public Dog(int number, double price, double sWeight, String origin, String webpage){ } } import java.util.ArrayList; public cla

下面我有一门狗课和一门狗屋课。我对java相当陌生,所以我不清楚如何创建一个Doghouse类,该类具有一个接受Dogs数组并将其添加到ArrayList的构造函数。我下面的代码有意义吗

 public class Dog{
   public Dog(int number, double price, double sWeight, String origin, String webpage){
   }
}



import java.util.ArrayList;

public class Doghouse{
private ArrayList<Dog> dogList;

public Doghouse(Dog[] newDog){

    for(int i = 0; i < newDog.length; i++){
        dogList.add(newDog[i]);
    }

}
公共级狗{
公犬(整数、双倍价格、双倍重量、字符串来源、字符串网页){
}
}
导入java.util.ArrayList;
公营狗舍{
私有数组列表;
公共狗舍(狗[]新狗){
for(int i=0;i

}

目前使用
狗名单
而不初始化它会抛出一个NPE

您可以将其修复为:

public static class Doghouse {
    private List<Dog> dogList;

    public Doghouse(Dog[] newDog) { // constructor name corrected
        this.dogList = Arrays.stream(newDog).collect(toList());
    }
}
公共静态类狗屋{
私人名单;
公共狗屋(狗狗[]新狗狗){//constructor name已更正
this.dogList=Arrays.stream(newDog.collect)(toList());
}
}
或者更容易理解

public Doghouse(Dog[] newDog) {
    this.dogList = new ArrayList<>(); // initialise first
    dogList.addAll(Arrays.asList(newDog)); // add later
}
公共狗屋(狗[]新狗){
this.dogList=new ArrayList();//首先初始化
dogList.addAll(Arrays.asList(newDog));//稍后添加
}

目前使用
狗名单
而不进行初始化会抛出NPE

您可以将其修复为:

public static class Doghouse {
    private List<Dog> dogList;

    public Doghouse(Dog[] newDog) { // constructor name corrected
        this.dogList = Arrays.stream(newDog).collect(toList());
    }
}
公共静态类狗屋{
私人名单;
公共狗屋(狗狗[]新狗狗){//constructor name已更正
this.dogList=Arrays.stream(newDog.collect)(toList());
}
}
或者更容易理解

public Doghouse(Dog[] newDog) {
    this.dogList = new ArrayList<>(); // initialise first
    dogList.addAll(Arrays.asList(newDog)); // add later
}
公共狗屋(狗[]新狗){
this.dogList=new ArrayList();//首先初始化
dogList.addAll(Arrays.asList(newDog));//稍后添加
}

我投票结束这个问题,因为缺少研究会很高兴地向你抛出一个
NullPointerException
。还有
公共仓库
与狗窝有什么关系?轻微的打字错误。编辑以适合。谢谢你的反馈,我投票结束这个问题,因为没有研究会很高兴地向你抛出一个
NullPointerException
。还有
public Warehouse
和狗窝有什么关系?轻微的打字错误。编辑以适合。谢谢你的反馈