我有這個函數返回一個數據類型的InetAddress []的Eclipse編譯時給了我一個奇怪的錯誤
public InetAddress []
lookupAllHostAddr(String host) throws UnknownHostException {
Name name = null;
try {
name = new Name(host);
}
catch (TextParseException e) {
throw new UnknownHostException(host);
}
Record [] records = null;
if (preferV6)
records = new Lookup(name, Type.AAAA).run();
if (records == null)
records = new Lookup(name, Type.A).run();
if (records == null && !preferV6)
records = new Lookup(name, Type.AAAA).run();
if (records == null)
throw new UnknownHostException(host);
InetAddress[] array = new InetAddress[records.length];
for (int i = 0; i < records.length; i++) {
Record record = records[i];
if (records[i] instanceof ARecord) {
ARecord a = (ARecord) records[i];
array[i] = a.getAddress();
} else {
AAAARecord aaaa = (AAAARecord) records[i];
array[i] = aaaa.getAddress();
}
}
return array;
}
Eclipse的抱怨,返回類型應該是字節[] [],但是當我改變返回類型byte [] [],它會抱怨函數返回了錯誤的數據類型。我被困在一個循環中。有人知道這裏發生了什麼嗎?
首先,您應該學會使用Collections類而不是原始數組。其次,您應該學會使用每個構造的新元素,而不是用一個計數器遍歷數組,而對於一個錯誤來說充其量是充滿的。 – 2010-03-31 02:37:41