0

我有一个传递参数的构造函数。我会在 Constructor 类的其他部分使用这个参数。这样做的唯一方法是传递参数是真的吗?或者我可以使参数成为全局变量?

public class MyClass {

    public Myclass (JTable particularTable)
    {
    // does something
    }
    private void useParticularTable ()
    {
    // want to do something with
    // particularTable not passed as parameter
    }
}
4

1 回答 1

2

就像其他人在评论中指出的那样,您必须保留对JTable传入原始文件的引用。

public class MyClass {
    private JTable particularTable;

    public Myclass (JTable particularTable) {
        this.particularTable = particularTable;
    }

    private void useParticularTable() {
        particularTable.doSomething();
    }
}

是必需的this.particularTable = particularTable;,因为参数和字段的名称相同。如果您刚刚拥有particularTable = particularTable,您只需将传入的参数重新分配给自身 - 没有任何效果。这称为阴影。

为避免此问题,您可以将参数命名为其他名称或使用this.来引用该字段。

于 2013-09-15T22:21:33.427 回答