Java 将对象从arraylist添加到类的实例
我有一个叫Garden的课程,里面有一个花的列表。我有一个方法,返回类中类的实例,还有一个方法向类中添加花。如何在测试工具中向类的实例添加鲜花。我的代码:Java 将对象从arraylist添加到类的实例,java,arraylist,instance,Java,Arraylist,Instance,我有一个叫Garden的课程,里面有一个花的列表。我有一个方法,返回类中类的实例,还有一个方法向类中添加花。如何在测试工具中向类的实例添加鲜花。我的代码: public class Garden { ArrayList<Flower> flowerbed = new ArrayList<Flower>(); Hive hive = null; private static Garden instance; public static
public class Garden {
ArrayList<Flower> flowerbed = new ArrayList<Flower>();
Hive hive = null;
private static Garden instance;
public static Garden getInstance(){
if(instance == null){
instance = new Garden();
}
return instance;
}
public void addFlower(Flower flower){
flowerbed.add(flower);
}//some methods omitted
}
一朵新花被添加到花园中,但没有添加到花园的实例中,因为getInstance方法是静态的,所以在如何在我的testharness中使用它的问题上让我感到困惑。我可能误解了你的问题,因为答案似乎太琐碎了,但是要向类中添加flower,只需使用已经提供的addFlower方法即可
public void testMethod() {
Flower one = new Flower();
Flower two = new Flower();
Garden garden = Garden.getInstance();
garden.addFlower(one);
garden.addFlower(two);
}
编辑:正如RobbmJ的答案所指出的,要正确应用单例模式,Garden的构造函数应该是私有的。我可能误解了你的问题,因为答案似乎太琐碎了,但要在类中添加flower,你只需使用你已经提供的addFlower方法
public void testMethod() {
Flower one = new Flower();
Flower two = new Flower();
Garden garden = Garden.getInstance();
garden.addFlower(one);
garden.addFlower(two);
}
Garden.getInstance().addFlower(new Flower());
Garden.getInstance().addFlower(new Flower());
编辑:正如RobbmJ的答案所指出的,要正确应用单例模式,Garden的构造函数应该是私有的。我可能误解了你的问题,因为答案似乎太琐碎了,但要在类中添加flower,你只需使用你已经提供的addFlower方法
public void testMethod() {
Flower one = new Flower();
Flower two = new Flower();
Garden garden = Garden.getInstance();
garden.addFlower(one);
garden.addFlower(two);
}
Garden.getInstance().addFlower(new Flower());
Garden.getInstance().addFlower(new Flower());
编辑:正如RobbmJ的答案所指出的,要正确应用单例模式,Garden的构造函数应该是私有的。我可能误解了你的问题,因为答案似乎太琐碎了,但要在类中添加flower,你只需使用你已经提供的addFlower方法
public void testMethod() {
Flower one = new Flower();
Flower two = new Flower();
Garden garden = Garden.getInstance();
garden.addFlower(one);
garden.addFlower(two);
}
Garden.getInstance().addFlower(new Flower());
Garden.getInstance().addFlower(new Flower());
编辑:正如RobbmJ的回答所指出的,要正确应用单例模式,您的花园构造函数应该是私有的
Garden.getInstance().addFlower(new Flower());
Garden.getInstance().addFlower(new Flower());
您使用的是单例模式,因此应该将Garden的构造函数设置为私有
private Garden() {}
另外,因为没有理由将单例子类化
public final class Garden
调用garden的getInstance
将始终返回与garden
相同的实例,无论是谁调用它
另外,你要确保花坛不是静态的,就像你所做的那样
private Arraylist<Flower> flowerBed = new ArrayList<>();
private Arraylist flowerBed=new Arraylist();
您使用的是单例模式,因此应该将Garden的构造函数设置为私有
private Garden() {}
另外,因为没有理由将单例子类化
public final class Garden
调用garden的getInstance
将始终返回与garden
相同的实例,无论是谁调用它
另外,你要确保花坛不是静态的,就像你所做的那样
private Arraylist<Flower> flowerBed = new ArrayList<>();
private Arraylist flowerBed=new Arraylist();
您使用的是单例模式,因此应该将Garden的构造函数设置为私有
private Garden() {}
另外,因为没有理由将单例子类化
public final class Garden
调用garden的getInstance
将始终返回与garden
相同的实例,无论是谁调用它
另外,你要确保花坛不是静态的,就像你所做的那样
private Arraylist<Flower> flowerBed = new ArrayList<>();
private Arraylist flowerBed=new Arraylist();
您使用的是单例模式,因此应该将Garden的构造函数设置为私有
private Garden() {}
另外,因为没有理由将单例子类化
public final class Garden
调用garden的getInstance
将始终返回与garden
相同的实例,无论是谁调用它
另外,你要确保花坛不是静态的,就像你所做的那样
private Arraylist<Flower> flowerBed = new ArrayList<>();
private Arraylist flowerBed=new Arraylist();
从我的代码运行方式来看,这会将方法添加到花园中,但不会添加到花园的实例中。你说的“将方法添加到花园中,但不会添加到花园的实例”是什么意思?您的getInstance方法()将为您提供一个花园的单例实例,这就是您向其中添加鲜花的实例。从我的代码运行方式来看,这会向花园添加方法,但不会向花园的实例添加方法。您的意思是“向花园添加方法,但不会向花园的实例添加方法”?您的getInstance方法()将为您提供一个花园的单例实例,这就是您向其中添加鲜花的实例。从我的代码运行方式来看,这会向花园添加方法,但不会向花园的实例添加方法。您的意思是“向花园添加方法,但不会向花园的实例添加方法”?您的getInstance方法()将为您提供一个花园的单例实例,这就是您向其中添加鲜花的实例。从我的代码运行方式来看,这会向花园添加方法,但不会向花园的实例添加方法。您的意思是“向花园添加方法,但不会向花园的实例添加方法”?getInstance方法()将为您提供一个花园的单例实例,这就是您将花添加到的实例。