android中的类对象数组

ste*_*128 2 java arrays android class

我构建了一个类来模仿C#结构:

public class Favourite {
    protected  String favName;
    protected  String favText;
    protected String favDelay;
    protected GeoPoint favPoint;
    protected Uri favUri;
}
Run Code Online (Sandbox Code Playgroud)

我想创建这个类的数组:

Favourite[] fav;
Run Code Online (Sandbox Code Playgroud)

当我尝试访问此数组时:

fav[s].favName = bufr;
Run Code Online (Sandbox Code Playgroud)

我得到一个NullPointerException. bufr确实包含数据.我已经跟踪它以访问数组,如下面的代码:

fav[s].favName = "";
Run Code Online (Sandbox Code Playgroud)

还会产生NullPointerException.

我已经搜索了高低,以获得关于我正在做什么是允许但是找不到任何东西的一些指示.

我想我的问题是:

你被允许创建一个类对象的数组吗?如果是这样,你如何引用该数组?

我知道我可以使用五个独立的变量数组来做到这一点但我觉得把它们放到一个类中会给出更好的结构并且更优雅(我更喜欢优雅).

Lou*_*man 8

问题fav[s]是null.

我不知道C#,但在Java中,你必须单独初始化数组的元素; 你不能只声明数组并自动填充它.

你将不得不循环fav并用新Favourite对象填充它.

您可以fav[s] = new Favourite()在第一次使用时进行分配,也可以一次性将其fav[s]初始化

for (int i = 0; i < fav.length; i++) {
  fav[s] = new Favourite();
}
Run Code Online (Sandbox Code Playgroud)