Java中的对象列表

米奇夫:

我正在尝试制作一个包含不同对象的列表。

List<Object> list = new ArrayList<Object>();
    defObject defObj;
    optObject optObj;

defObject只有一个String属性。

    public static class defObject
{
    public static String defObj;

    public defObject(String x)
    {
        setDefObj(x);           
    }

    public static String getDefObj() {
        return defObj;
    }

    public static void setDefObj(String defObj) {
        defObject.defObj = defObj;
    }           
}

如果我将多个defObjects添加到列表中,并在添加完元素后遍历列表,它们都包含相同的字符串,这是最后一个defObject添加到列表中。

我正在做这样的事情将对象添加到列表中:

   if (whatever)
       list.add(defObj = new defObject("x"));
    else if(whatever)
       list.add(defObj = new defObject("y"));

结果是带有字符串“ y”的两个defObjects

请帮助我弄清楚为什么未正确添加对象,并且属性与添加到列表中的最后一个defObj相同。

Asaph:

问题是,defObjstatic如此的所有实例都共享同一个变量。static从班上所有地方删除单词,一切都会按预期运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章