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