2016-09-01 52 views
-3

我是来自JavaScript的Java新手。修改存储在ArrayList中的对象的属性

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

我已经试过ArrayList.set(index, value),而是因为我有一个对象,错误被显示为说value is int expected com.package.object

arraylist.set(arraylist.get(0).position[1], ???); 
+3

得出什么'的ArrayList类型'? (你在存储什么元素?)你是试图在ArrayList的位置0设置一个新的值,还是修改存储在该位置的当前值? – Eran

回答

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

就是这么简单。

更好是添加null检查(假定位置是一个整数阵列)

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

} 

此外,请您的ArrayList在一个特定的类型。

现在problay定义:

Arraylist arraylist = new ArrayList(); 

然后你有一个 '包罗万象' 的ArrayList,什么事情都可能是在那里。这不是优选的。你想知道你在处理什么!

那么好做:

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

通过将<MyObject>那里,你说的对ArrayList中,只接受并返回实例为MyObject的对象或从

+0

真棒回答, 非常感谢你! :) – Squishy47

+0

Youre new here。如果此答案是针对您的问题的最佳解决方案,请考虑点击复选标记以接受答案 – Tschallacka