实例化新对象时,无法从静态上下文问题引用非静态变量

时间:2016-11-28 09:13:28

标签: java oop this

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
    }

}

我知道这个问题已被多次发布,我理解大多数答案,你不能在课堂上调用成员方法。但我正在实例化一个新对象,它调用它的构造函数??谢谢:))

2 个答案:

答案 0 :(得分:1)

整个班级Server不是static,因此无法在静态方法中引用。

答案 1 :(得分:1)

问题是Serverpwundublfive的非静态内部类,所以你可以实现pwundublfive而不是调用pwundublfiveInstance.Server(port)或者(你应该更喜欢)你可以移动将你的Server定义从另一个类中分成一个单独的文件(称为Server.java)。