问题应该放在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)
答案 0 :(得分:1)
我想你想记录所有创建的类?
在构造函数中传递this
通常是不好的做法,因为根据定义,this
尚未构建。在这种情况下,我不认为它会导致问题,但它肯定闻不到。
我会考虑使用static
工厂方法或其他形式的工厂模式,以便您可以拆分对象创建和实例存储。
答案 1 :(得分:0)
除非你告诉你要做什么,否则没有人能告诉你这是对还是错。
如果您正在做的事情如下:(假设您的班级被称为Foo)
Foo foo = new Foo();
foo.createClass("Blablabla", "method1", true);
foo.createClass("AnotherClass", "method2", true);
类似的东西,然后是的,你可能错了。因为您正在做的只是更改具有不同属性的唯一Foo实例,并将相同的对象添加到列表中。