为什么我不能将数组存储在另一个数组中?

时间:2016-10-19 05:49:56

标签: java jpcap

我从一开始就用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.

1 个答案:

答案 0 :(得分:0)

数组bNetworkInterfaceAddress数组,这意味着它可以存储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