user3629217
user3629217

Reputation: 41

Java - No enclosing instance of the type ... is accessible in scope

I have this class:

public class PetAssembly extends Global
{
    public Socket socket;
    public ConnectionManager user;

    public PetAssembly(Socket socket, ConnectionManager user)
    {
        this.socket = socket;
        this.user = user;
    }

    public void initPet()
    {
        sendPacket(socket, "0|PET|I|0|0|1");
        sendPacket(socket, "0|PET|S|1000|1|0|8000|50000|50000|1000|1000|50000|50000|" + (((user.user.getSpeed() * 30) / 100) + user.user.getSpeed()) + "|testPet");
    }
}

I want to use it:

case "/pet":
      PetAssembly.this.initPet();
break;

But it gives me this error, how to fix it? I'm a beginner : No enclosing instance of the type PetAssembly is accessible in scope

Upvotes: 2

Views: 1294

Answers (1)

dan.m was user2321368
dan.m was user2321368

Reputation: 1705

PetAssembly.initPet() is an instance method. You first need to construct an object of PetAssembly (an instance of that class), and then have a reference to that object before you can invoke a method on it.

PetAssembly pa = new PetAssembly(socket, user); 
// Creates a new PetAssembly object
// and stores a reference to that in the variable pa.
pa.initPet(); 
// Calls the initPet() method on the PetAssembly object referred to by the variable pa.

Upvotes: 4

Related Questions