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をループすると、2 つの要素 (正しい) がすべて 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

なんで?

4

2 に答える 2

6

コンストラクターの割り当ては逆です

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;
}
于 2013-07-30T16:35:36.163 に答える
1

のコンストラクターMenuUpElementが間違っています。フィールドの値でパラメーターを設定しています。それは逆でなければなりません:

public MenuUpElement(int viewId, String label, Class<?> classe) {
    this.viewId = viewId;
    this.classe = classe;
    this.label = label;
}
于 2013-07-30T16:35:58.467 に答える