我从一开始就用c ++编写代码,但现在一直致力于与Java上的网络管理相关的项目。这里a[i].addresses
返回NetworkInterfaceAddress[]
(即数组)。但是,当我尝试像这样复制时,它会出错。
NetworkInterface[] a;
a=JpcapCaptor.getDeviceList();
NetworkInterfaceAddress[] b=new NetworkInterfaceAddress[a.length];
int i=-1;
while(++i<a.length)
b[i]=a[i].addresses;
这会出错:
incompatible types: NetworkInterfaceAddress[] cannot be converted to NetworkInterfaceAddress.
答案 0 :(得分:0)
数组b
是NetworkInterfaceAddress
数组,这意味着它可以存储objects
类型的NetworkInterfaceAddress
。但是,正如您所说,a[i].addresses
返回NetworkInterfaceAddress
的数组因此,b
应该能够存储类型{的数组 {1}}而不是NetworkInterfaceAddress类型的对象。为此,b应该是一个数组数组或一个锯齿状数组。将b的定义更改为
NetworkInterfaceAddress
然后,在数组中添加NetworkInterfaceAddress[][] b = new NetworkInterfaceAddress[a.length][];
时,将b中必须保留a[i].addresses
的当前数组的长度指定为a[i].addresses
。
a[i].length