java - 数组元素具有空字段

标签 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

为什么?

最佳答案

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

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;
}

关于java - 数组元素具有空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952605/

相关文章:

java - 将数组列表传递给 fragment ?

php - 递归数组中相对于子属性的自适应父属性

c - 为什么数据段(ds)是0?甚至还有其他合法变量(整数)

oracle - 如何使用 oracle sql 开发人员工具为表中的字段设置空值?

scala - 当我们有代码契约/静态分析时,为什么我们需要 Option 类型?

java - 忘记处理异常是逻辑/运行时错误还是不是错误

Java 进程生成器 : space within quotation marks

java - 如何识别GET请求中地址中的参数是什么? request.getParameterMap() 总是返回 null

c++ - 在另一个构造函数中调用对象数组的构造函数

c - 如何在 C/Objective-C 中获取数组的大小?