嘿,我有这个非常奇怪的错误,可能与我的java版本有关。
这是我的班级:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ClientThread extends Thread{
private Socket clientSocket;
ClientThread(Socket clientSocket) {
this.clientSocket = clientSocket;
}
public void run() {
try {
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String message;
while (((message = in.readLine()) != null)) {
// out.println(message);
System.out.println(message);
}
} catch (IOException e) {
}
}
public Socket getClientSocket() {
return clientSocket;
}
public void setClientSocket(final Socket clientSocket) {
this.clientSocket = clientSocket;
}
}
这是我的java版本:
java version "1.7.0_72"
Java(TM) SE Runtime Environment (build 1.7.0_72-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode)
当我编译该类时,我收到以下错误:
ClientThread.java:11: error: constructor Thread in class Thread cannot be applied to given types;
ClientThread(Socket clientSocket) {
^
required: Socket
found: no arguments
reason: actual and formal argument lists differ in length
1 error
这个错误非常奇怪,我不明白。我在互联网上的教程中找到了几乎完全相同的课程。我猜测我的java版本有错误。我的操作系统是ubuntu。
答案 0 :(得分:2)
听起来你在默认包中有一个Thread
类 - 可能只是类文件,而不是源文件。 java.lang.*
是自动导入的,其余所有导入都是单类导入,所以这是我唯一可以看到的东西。
您应该查看您正在编译的目录,并确保它仅具有您期望的类...如果您正在重建,您可以删除所有首先是类文件,然后你知道只有源文件是相关的。
虽然可以明确地继续java.lang.Thread
扩展,但找到流氓Thread
类并将其删除会更好。