Этот код довольно запутанный. Невозможно знать, что происходит, не зная о других ваших классах.
В этом коде много чего не нравится. Если я вижу цикл для набора объектов, который зависит от «instanceof» для правильной работы, я не могу не думать, что полиморфизм был бы лучшим решением.
Ваш звонок new Lookup(name, type).run()
заставляет меня думать о Runnable и Threads, но это не то, что вы делаете.
Похоже, вы пытаетесь выполнить поиск DNS-сервера. Я хотел бы знать, если бы уже не было чего-то, что могло бы помочь (например, Apache James ).
ОБНОВЛЕНИЕ:
Я пытался взять твой метод и заставить его работать. Я вычеркнул вещи, которых у меня не было, и уменьшил проблему до самой простой вещи, которую я мог. У него есть подпись вашего метода и тот же тип возврата. Этот более простой пример работает. Если есть проблема, это должно быть в том, что я убрал. Извините, я не могу быть более полезным.
import java.net.InetAddress;
import java.net.UnknownHostException;
public class HostLookup
{
public static void main(String[] args)
{
try
{
HostLookup lookup = new HostLookup();
String host = ((args.length > 0) ? args[0] : "localhost");
InetAddress [] allHostAddresses = lookup.lookupAllHostAddr(host);
for (InetAddress address : allHostAddresses)
{
System.out.println("address: " + address);
}
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
}
public InetAddress [] lookupAllHostAddr(String host) throws UnknownHostException
{
InetAddress[] array = InetAddress.getAllByName(host);
return array;
}
}