Язык Java ожидает, что за new
будет следовать имя класса или имени типа массива, и говорит, что вы создаете новый объект.
Но вы не пытаетесь создать новый объект здесь,Вы пытаетесь вызвать метод accept()
на существующем объекте.
Избавиться от new
во 2-й строке.
Причина этого запутанного сообщения заключается в том, чточто компилятор считает , что вы пытаетесь создать объект, и пытается сопоставить "server.accept" с определенным именем класса;т.е. класс с именем «accept» в пакете «server».Ни один из них не существует, поэтому он говорит, что не может этого сделать.Причина, по которой он не осознает, что имя «сервера» является именем вашей переменной, заключается в том, что идентификаторы переменных и идентификаторы классов и пакетов находятся в разных пространствах имен.Чтобы проиллюстрировать это, если вы определили класс следующим образом:
package server;
public class accept {
}
, тогда ваш двухстрочный кодовый код выдаст другую ошибку компиляции, такую как сервер «Вы не можете назначить объект типа».принять "к переменной типа Socket".