java无法为对象的数组赋值
我已经创建了一个自定义对象数组来存储其中的值
mNearbyPlaceMini[] mn = new mNearbyPlaceMini[googlePlacesObj.results.size()];
for (int i = 0; i < googlePlacesObj.results.size(); i++) {
mGooglePlaces.place place = googlePlacesObj.results.get(i);
Bitmap placeImageBitmap = null;
try {
URL imageUrl = new URL(place.icon);
placeImageBitmap = BitmapFactory.decodeStream(imageUrl.openConnection().getInputStream());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mn[i].placePicture = placeImageBitmap; //ERROR HERE
mn[i].placeName = place.name;
...
}
但是,当我尝试为像这样的对象的属性赋值时,它会给我mn[i].placePicture = placeImageBitmap
错误。placeImageBitmap
具有有效值且不为null,因此我对对象数组所做的操作一定是错误的
public class mNearbyPlaceMini {
public Bitmap placePicture;
public String placeName;
public Double latitude;
public Double longitude;
public mNearbyPlaceMini(){}
}
# 1 楼答案
您从未将对象分配给
mn[i]
,因此它是空的使用
mNearbyPlaceMini[] mn = new mNearbyPlaceMini[googlePlacesObj.results.size()];
创建一个数组,但这只会创建一个googlePlacesObj.results.size()
空对象数组必须使用
mn[i] = new mNearbyPlaceMini();
初始化数组中的每个对象。 只有这样,您才能访问mn[i]
,而不会得到NullPointerException# 2 楼答案
试试这个: