我有一个列有人员的班级。我创建了一个PersonBeholder类(意思是挪威语中的PersonContainer)。我还有一个班级人员,以及一个能够建立人与人之间关系的主要班级。当我试图引用主要课堂以外的一般人员名单时,我遇到了问题。
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);
}
}
当我尝试从主外部引用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);
}
}
它仍然不起作用。
答案 0 :(得分:1)
对象的范围在main方法中。如果要在其外部使用它,请将其声明为TestPersoner类的成员,或将其作为参数传递给方法。
答案 1 :(得分:0)
Local variables
仅限于方法范围。你不能在你定义它们的方法之外使用它们。它们只是在方法完成后得到GC'D,除非你明确地返回它们。