我正在尝试构建一个类数组,并且正在为对象添加一些值,但它仍然显示空指针异常。
我的代码是:
class WifiScanReceiver extends BroadcastReceiver {
@SuppressLint("UseValueOf")
public void onReceive(Context c, Intent intent) {
List<ScanResult> wifilist = wifi.getScanResults();
info = wifi.getConnectionInfo();
int k = wifilist.size();
scan_data[] data = new scan_data[k];
for (int i=0;i<20;i++){
wifi.startScan();
List<ScanResult> wifilist1 = wifi.getScanResults();
int l = wifilist1.size();
if (i==0){
for (int j=0;j<l;j++){
data[j].ssid = wifilist1.get(j).SSID.toString();
data[j].bssid = wifilist1.get(j).BSSID.toString();
data[j].lvl = wifilist1.get(j).level;
data[j].count++;
}
如果你能告诉我为什么它在
显示空指针异常data[j].ssid = wifilist1.get(j).SSID.toString();
答案 0 :(得分:1)
问题是你的scan_Data数组没有用对象初始化。
scan_data[] data = new scan_data[k];
这只是初始化数组而不是在其中放置对象。你必须明确地做 所以在你的for循环中。创建scan_data对象并将所有值放入其中,然后将其放在data [j]。
上 for (int j=0;j<l;j++){
scan_data sData = new scan_data();
// set all desired values in sData from ScanData
data[j] = sData;
}
希望这有帮助。