2016-11-28 5 views
-1
import java.io.*; 
import java.net.*; 

public class pwundublfive{ 
    public class Server{ 

     private ServerSocket socket; 
     private int port; 

     public Server(int port) throws IOException{ 
      socket = new ServerSocket(port); 
      socket.setSoTimeout(10000); 
     } 
    } 

    public static void main(String[] args){ 
     int port = 1234; 
     Server obj = new Server(port); // <-- Error here 
    } 

} 

Я знаю, что этот вопрос был опубликован много раз, и я понимаю большую часть ответов, которые вы не можете назвать членом метод по классу. Но я создаю новый объект, который вызывает его конструктор? Спасибо :)Нестатическая переменная это не может быть ссылкой из статического контекста при создании экземпляра нового объекта

+0

Вы пытаетесь воспроизвести его, чего вы не можете сделать. Вот и все, независимо от того, что является прецедентом. – Mritunjay

ответ

1

Проблема заключается в том, что Server не является статическим внутренним классом pwundublfive, так что вы можете либо создание экземпляра pwundublfive и чем вызов pwundublfiveInstance.Server(port) или (что вы должны предпочитать) вы можете переместить Server определение из другого класса в отдельный файл (называемый Server.java).

1

Весь класс Server не является static, поэтому нельзя ссылаться на статический метод.