当我尝试编译我的java工作时,我收到以下错误。
Send.java:16: error: Send is not abstract and does not override abstract method run() in Runnable
public class Send implements Runnable {
^
1 error
我的Send.java代码是
public class Send implements Runnable {
private byte[] data = new byte[0];
private String from = "";
static DataOutputStream out = null;
public Send(byte[] data, String from) throws IOException {
data = data;
from = from;
out = Server.os;
Log.logInfo("Data:" + DatatypeConverter.printHexBinary(data) + "");
Log.logInfo("From:" + from + "");
Log.logInfo("OS:" + out + "");
}
}
在服务器文件中定义os输出流的代码是:
public class Server implements Runnable {
private Socket socket;
public static DataOutputStream os = null;
private DataInputStream is = null;
public Server(String originalHost) throws Exception {
socket = new Socket(originalHost, 9339);
Log.logInfo("* Connected to Server");
}
@Override
public void run() {
int bytes_read;
try {
DataInputStream is = new DataInputStream(socket.getInputStream());
DataOutputStream os = new DataOutputStream(socket.getOutputStream());
....
我需要保留send.java代码以使输出流相同,因为很快它也将从另一个文件中获取相同的变量,具体取决于if语句。
有没有想过如何解决这个问题?
谢谢!
答案 0 :(得分:2)
您有Send类实现Runnable接口,但不要像在服务器类中那样覆盖run()方法。
在Send类中实现以下方法:
@Override
public void run() {}