难以理解的问题(在线等)
本人在写程序,碰到令人费解的问题:下面是我的部分代码
import java.io.*;
import java.net.*;
import java.util.*;
import java.sql.*;
public class finalserver
{
/*ServerSocket server;
Socket socket;*/
public static final int port=1001;
// String dbURL="jdbc:odbc:contact";
public static void main(String[] args)throws IOException
{
/* Connection conn=DriverManager.getConnection(dbURL);
Statement stmt=conn.createStatement();
Statement stmt1=conn.createStatement();*/
ServerSocket server=new ServerSocket(port);
System.out.println("server started");
try{
while(true){
try{
Socket clientserver=server.accept();
System.out.println("connected");
new Handler(clientserver);
}
catch(Exception e)
{
System.out.println("fsd");
}
}
}
catch(Exception e){
System.out.println("connect error");
}
}
class Handler extends Thread
{public Handler(){
}
public Handler(Socket s)throws IOException
{
sock=s;
in=new BufferedReader(new InputStreamReader(sock.getInputStream()));
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())),true);
start();
}
public void run(){
其他代码
}
}
编译过后出现这样的错误信息:
finalserver.java:28: non-static variable this cannot be referenced from a static context
new Handler(clientserver);
1 error
请问高手是怎么回事
问题点数:50、回复次数:1Top
1 楼bsd(小红帽菜鸟)回复于 2003-06-02 13:48:22 得分 50
你需要把内部类Handler声明为static的
否则不能在static的上下文(context)即main方法中引用Top




