2013-07-30 77 views
0

我有这个类:数组元素可以是空字段

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我环路在另一类中,我发现了两个元素(正确),但全为空(错误):

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

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

为什么?

回答

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

AH AH AH OH我的上帝DUMB DUMB DUMB !!!我做了很多次:P也许,昨天我太累了;) – Geltrude

1

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

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