I seem to be getting the above error when trying to make a callable class. I have searched for the reason but can’t seem to find anything. NetBeans gives me a few options to make things abstract but I’m new to this and I’d rather find out why something is happening. Can anyone shed light on this?
public class doPing implements Callable<String>{
public String call(String IPtoPing) throws Exception{
String pingOutput = null;
//gets IP address and places into new IP object
InetAddress IPAddress = InetAddress.getByName(IPtoPing);
//finds if IP is reachable or not. a timeout timer of 3000 milliseconds is set.
//Results can vary depending on permissions so cmd method of doing this has also been added as backup
boolean reachable = IPAddress.isReachable(1400);
if (reachable){
pingOutput = IPtoPing + " is reachable.\n";
}else{
//runs ping command once on the IP address in CMD
Process ping = Runtime.getRuntime().exec("ping " + IPtoPing + " -n 1 -w 300");
//reads input from command line
BufferedReader in = new BufferedReader(new InputStreamReader(ping.getInputStream()));
String line;
int lineCount = 0;
while ((line = in.readLine()) != null) {
//increase line count to find part of command prompt output that we want
lineCount++;
//when line count is 3 print result
if (lineCount == 3){
pingOutput = "Ping to " + IPtoPing + ": " + line + "\n";
}
}
}
return pingOutput;
}
}
In your code, the
callmethod has an argument: it does not override thecallmethod of theCallableinterface – It should look like:If you are using Java 6+, it is good practice ot use the
Overrideannotation, which can help spot wrong method signatures (in this case you already got a compilation error):