我是来自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
答案 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的对象或从中派生