如何向Object ArrayList添加多个值?

时间:2013-10-27 13:02:31

标签: java class oop object arraylist

问题应该放在createClass()方法上......使用classes.add(this)是不对的?

private static ArrayList<VirtualClass> classes = new ArrayList<VirtualClass>();
private boolean isPrivate;
private String className;
private String methodName;

public void setVirtualClass(String name, String method, boolean isP){
    this.className = name;
    this.isPrivate = isP;
    this.methodName = method;
}

public void createClass(String name, String method, boolean isP){
    this.className = name;
    this.isPrivate = isP;
    this.methodName = method;
    classes.add(this);
}

有关此问题的更多详细信息:Failed to store values in ArrayList of class object. (CODE EDITED)

2 个答案:

答案 0 :(得分:1)

我想你想记录所有创建的类?

在构造函数中传递this通常是不好的做法,因为根据定义,this尚未构建。在这种情况下,我不认为它会导致问题,但它肯定闻不到。

我会考虑使用static工厂方法或其他形式的工厂模式,以便您可以拆分对象创建和实例存储。

答案 1 :(得分:0)

除非你告诉你要做什么,否则没有人能告诉你这是对还是错。

如果您正在做的事情如下:(假设您的班级被称为Foo)

Foo foo = new Foo();

foo.createClass("Blablabla", "method1", true);
foo.createClass("AnotherClass", "method2", true);

类似的东西,然后是的,你可能错了。因为您正在做的只是更改具有不同属性的唯一Foo实例,并将相同的对象添加到列表中。