Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is my method undefined for the type object?

Tags:

java

sockets

I'm not sure why Eclipse is giving me this error:

The method listen() is undefined for the type Object

What simple mistake am I making? Also, is my code the right way to write a main method which instantiates an EchoServer0 object and calls its listen method?

public class EchoServer0 {    
    public void listen() {
        ServerSocket socket = null;
        try{
            socket = new ServerSocket(2013);
            System.out.println("Opened server socket");
            socket.setSoTimeout(2000);
            socket.accept();
            socket.close();
        }
        catch (SocketTimeoutException ste){
            System.out.println("Timed out after " + 2000 + " ms");
        }
        catch (Exception e){
            System.out.println(e.getClass().getName()+" at server: " + e.getMessage());
        }       
    }

    public static void main(String[] args) {
        Object EchoServer0;
        EchoServer0.listen();
    } 
}
like image 981
user3205160 Avatar asked Jan 20 '14 23:01

user3205160


1 Answers

Change your main to:

public static void main(String[] args) {
    EchoServer echoServer = new EchoServer();
    echoServer.listen();
}

When you declare Object EchoServer0; you have a few mistakes.

  1. EchoServer0 is of type Object, therefore it doesn't have the method listen().
  2. You will also need to create an instance of it with new.
  3. Another problem, this is only regarding naming conventions, you should call your variables starting by lower case letters, echoServer0 instead of EchoServer0. Uppercase names are usually for class names.
  4. You should not create a variable with the same name as its class. It is confusing.
like image 122
Raul Guiu Avatar answered Sep 26 '22 02:09

Raul Guiu