我构建了一个模仿C#结构的类:
public class Favourite {
protected String favName;
protected String favText;
protected String favDelay;
protected GeoPoint favPoint;
protected Uri favUri;
}
我想创建一个这个类的数组:
Favourite[] fav;
当我尝试访问此数组时:
fav[s].favName = bufr;
我收到NullPointerException。 bufr
确实包含数据。我已经跟踪它以访问数组,如下面的代码:
fav[s].favName = "";
也会产生NullPointerException。
我已经搜索了高低,以获得关于我正在做什么是允许但是找不到任何东西的一些指示。
我想我的问题是:
您是否可以创建类对象的数组? 如果是这样,你如何引用该数组呢?
我知道我可以使用五个独立的变量数组来做到这一点,但我觉得将它们放入一个类可以提供更好的结构,更优雅(我更喜欢优雅)。
答案 0 :(得分:8)
问题是fav[s]
为空。
我不知道C#,但在Java中,你必须单独初始化数组的元素;你不能只声明数组并自动填充它。
您将不得不遍历fav
并填充新的Favourite
个对象。
首次使用fav[s] = new Favourite()
时指定fav[s]
,或者通过执行
for (int i = 0; i < fav.length; i++) {
fav[s] = new Favourite();
}
{{1}}
答案 1 :(得分:3)
Favourite[] fav = new Favourite[23]; // Allocate an array of 23 items
现在你有23个人!
答案 2 :(得分:1)
您需要将项目放入数组中。声明的数组在每个槽中只有null;你需要做fav[s] = new Favourite()
之类的事情。