我有一个带有参数传递的构造函数。我将在Constructor类的其他部分中使用此参数。确实,唯一的方法就是传递参数?或者我可以将参数设置为全局变量?

public class MyClass {

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

最佳答案

就像其他人在评论中指出的那样,您必须保留对传入的原始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.引用该字段。

关于java - 使用构造函数的参数作为全局变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18818046/

10-10 03:09