Эй, у меня есть эта очень странная ошибка, которая, вероятно, связана с моей версией java.error: constructor Thread в классе Thread не может применяться к заданным типам;
Вот мой класс:
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.
Odd - он компилируется для меня ... –
У вас есть свой собственный класс Thread, который вы используете, который имеет конструктор, который принимает «Socket»? Это единственный способ получить здесь ошибку компилятора. – rgettman
@ JonSkeet Вот что я догадался. Вероятно, это связано с версиями java. Любые идеи, как отлаживать ошибки? – Marijus