无法从静态上下文引用非静态方法

时间:2011-10-29 23:33:57

标签: methods static scope instance

我正在尝试从另一个类调用一个方法,并且从我收集的内容中,我试图调用的方法是一个实例方法。我收集了它,这意味着它使用了一个对象的实例变量。有没有一种简单的方法来调用这种方法?

这是主要方法,

public void main()
{
    Test.testPetOwner();
}

这是我试图在名为“Test”

的类中调用的方法
public void testPetOwner()
{
    String petName;
    String species;
    String hairCondition;
    String posture;

    testCompetitor();

    PetOwner petOwner1 = new PetOwner();

    System.out.println("What is the pet's name?");
    petName = Genio.getString();
    petOwner1.setPetName(petName);

    System.out.println("What is the species of the pet?");
    species = Genio.getString();
    petOwner1.setSpecies(species);

    System.out.println("What is the hair condition of the pet?");
    hairCondition = Genio.getString();
    petOwner1.setHairCondition(hairCondition);

    System.out.println("How is the pet's posture?");
    posture = Genio.getString();
    petOwner1.setPosture(posture);
}

2 个答案:

答案 0 :(得分:1)

public void main()
{
    Test t = new Test();
    t.testPetOwner();
}

答案 1 :(得分:0)

如果我们尝试从静态上下文访问实例方法,编译器现在可以猜测哪个实例方法(哪个对象的变量),你也指的是。虽然您始终可以使用对象引用来访问它。