数组元素具有空字段

时间:2013-07-30 16:34:28

标签: java arrays null

我是这堂课:

public class MenuUpElement {

    Class<?> classe;
    String label;
    int viewId;

    public MenuUpElement(int viewId, String label, Class<?> classe) {
        viewId = this.viewId;
        classe = this.classe;
        label = this.label;
    }
}

然后我有一个带有此声明的静态类 StaticClass

public static final MenuUpElement[] menuUpElements = new MenuUpElement[]{
    new MenuUpElement(12, "Main", MainActivity.class)
    , new MenuUpElement(13, "Second", SecondActivity.class)
    };

如果我在另一个类中循环 StaticClass.menuUpElements ,我发现了两个元素(正确),但都是null(错误):

menuUpElements[0].classe = null
menuUpElements[0].viewId= 0
menuUpElements[0].label= null

menuUpElements[1].classe = null
menuUpElements[1].viewId= 0
menuUpElements[1].label= null

为什么?

2 个答案:

答案 0 :(得分:5)

构造函数中的赋值是向后的

public MenuUpElement(int viewId, String label, Class<?> classe) {
    viewId = this.viewId;
    classe = this.classe;
    label = this.label;
}

考虑

public MenuUpElement(int viewId, String label, Class<?> classe) {
    this.viewId = viewId;
    this.classe = classe;
    this.label  = label;
}

答案 1 :(得分:1)

MenuUpElement的构造函数错误,您使用字段值设置参数。它应该是相反的方式:

public MenuUpElement(int viewId, String label, Class<?> classe) {
    this.viewId = viewId;
    this.classe = classe;
    this.label = label;
}