0

问题应该出在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);
}

有关该问题的更多详细信息:无法将值存储在类对象的 ArrayList 中。(代码已编辑)

4

2 回答 2

1

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

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

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

于 2013-10-27T13:09:17.723 回答
0

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

如果您正在做的事情是这样的:(假设您的课程名为 Foo)

Foo foo = new Foo();

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

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

于 2013-10-27T13:09:44.513 回答