无法从main外部引用在main中创建的对象



我有一个带有人员列表的类。我制作了一个类PersonBeholder(在挪威语中的意思是PersonContainer)。我还有一个类Person,还有一个主要的类,用来建立人与人之间的关系。当我试图参考主要班级以外的人员的一般名单时,我遇到了问题。

class TestPersoner{
public static void main (String [ ] args){
   **PersonBeholder pl = new PersonBeholder();**
    Person Emil = new Person("Emil");
    Person Nils = new Person("Nils");
    pl.settInnPerson(Emil);        //this populates the list
    pl.settInnPerson(Nils);
    }
}

现在,当我试图从main外部引用PersonBeholder pl时,我遇到了问题:

public void blirVennMed(Person p){
if(!pl.erIbeholder(p.hentNavn())) System.out.print("This is not going to work");
//this does check if there is someone in the container named p.hentNavn()
}

输出

TestPersoner.java:26: error: cannot find symbol
if(!pl.erIbeholder(p.hentNavn())) System.out.print("This is not going to work");
    ^
  symbol:   variable pl
  location: class Person
1 error

现在我是这样做的:

class TestPersoner{
public static PersonBeholder pl = new PersonBeholder();
public static void main (String [ ] args){  
    Person Emil = new Person("Emil");
    Person Nils = new Person("Nils");
    pl.settInnPerson(Emil);        //this populates the list
    pl.settInnPerson(Nils);
    }
}

但它仍然不起作用。

对象的作用域在main方法中。如果您想在它之外使用它,请将它声明为类TestPersoner的成员,或者将它作为参数传递给方法。

Local variables仅限于方法范围。你不能在你在中定义的方法之外使用它们。除非你显式地返回它们,否则它们只是在方法完成后得到GC’D。

相关内容

  • 没有找到相关文章

最新更新