Я не уверен, почему Eclipse, дает мне эту ошибку:Почему мой метод не определен для объекта типа?
The method
listen()
is undefined for the typeObject
Что просто ошибка я делаю? Кроме того, является ли мой код правильным способом написать метод main
, который создает объект EchoServer0
и вызывает его метод listen
?
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();
}
}
'Метод listen() не определен для типа Object'. Это довольно прямолинейно. Класс Object не содержит этого метода. Объявите переменную 'EchoServer0' как тип с этим методом. – csmckelvey
Компилятор использует объявленный тип переменной, чтобы узнать, какие методы он поддерживает. Если вы пишете 'Object name =" Stack Overflow "', тогда вы можете вызывать 'name' только методы' Object'. У компилятора нет выбора.Между объявлением и вызовом метода кто-то может написать 'name = Integer.valueOf (1)'. Фактический метод, который вызывается, зависит от значения 'name' и объявленных типов аргументов метода. –