Есть ли способ получить аргумент в вызываемом методе?

Я создал фрагмент кода, который берет IP-адрес (из основного метода в другом классе ), а затем перебирает диапазон IP-адресов, пингуя каждый из них. как оно идет. У меня есть интерфейс с графическим интерфейсом, и он давал сбой (, поэтому я сделал многопоточность. Моя проблема в том, что я больше не могу использовать IP-адрес в качестве аргумента в моем пинг-коде как его вызываемом. Я искал все это и не могу найти способ обойти это. Есть ли способ для вызываемого метода принимать аргументы? Если нет, есть ли другой способ выполнить то, что я пытаюсь сделать?

пример моего кода:

public class doPing implements Callable<String>{

public String call() 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;
}
}

IPtoPing раньше был принятым аргументом.

38
задан Steve 27 May 2012 в 20:10
поделиться