修改存储在ArrayList中的对象的属性

时间:2016-09-01 09:57:13

标签: java arraylist

我是来自Javascript的Java新手。

如果我有一个对象的ArrayList,我如何修改ArrayList中对象的属性值。

我尝试了private static void HandleConsole_CancelKeyPress(ConsoleCancelEventArgs consoleCancelEventArgs) { if (doNotExitYet) { consoleCancelEventArgs.Cancel = true; } } ,但由于我有一个对象,因此显示错误ArrayList.set(index, value)

value is int expected com.package.object

1 个答案:

答案 0 :(得分:2)

arraylist.get(0).position[1] = newvalue

就这么简单。

更好的是添加空检查(假设position是整数数组)

/**
 * position: where in the arraylist to store. 
 * newvalue: the value to set
 */
 public void setPositionValue(int position, int newvalue) {
    /** check if valid arraylist index **/
    if(position < this.arraylist.size()) {
        MyObject myobject = this.arraylist.get(position);
        /** check if we got something valid back **/
        if(myobject != null) { 
           /** check if array is set and length is valid **/
           if(myobject.position != null && myobject.position.length > 1) {
               myobject.position[1] = newvalue;
           }
        }
    }

}

另外,请将您的arraylists设为特定类型。

你现在已经定义了:

Arraylist arraylist = new ArrayList();

然后你有一个'catchall'arraylist,任何东西都可以在那里。这不是优选的。你想知道你在处理什么!

做得更好:

ArrayList<MyObject> arraylist = new ArrayList<MyObject>();

<MyObject>放在那里,你要对arraylist说,只接受并返回实例MyObject的对象或从中派生