java - 使用构造函数的参数作为全局变量

标签 java parameters constructor global-variables

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

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.preferTable = certainTable; 因为参数和字段的名称相同。如果您只有 preferredTable = certainTable,您只需将传入的参数重新分配给自身 - 没有任何效果。这称为阴影。

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

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

相关文章:

java - 在 Java 中初始化二维列表

php - 使用 AJAX (Javascript) 将查询传递到函数中

linux - Shell脚本正在打印参数而不传递给它

python - __new__ 构造函数的常见做法?

java - 哈希表大小设置

java - 我应该将 SQL 文件放在我的 Java 项目中的什么位置?

javascript - 将函数参数中的对象传递给 jquery 中的克隆

java - 在 Scala 中,如何子类化具有多个构造函数的 Java 类?

C++11 空标志类

java - 如何扫描类的注解?