Java 使用我创建的对象为每个循环创建一个
所以我有一个名为Item的对象数组,我想用for-each循环遍历这个数组Java 使用我创建的对象为每个循环创建一个,java,arrays,foreach,Java,Arrays,Foreach,所以我有一个名为Item的对象数组,我想用for-each循环遍历这个数组 private ArrayList carriedItems; /** * this private helper method checks the ArrayList for the requested Item name. If found, return the Item. * If not found, return null. * @param the name of the item *
private ArrayList carriedItems;
/**
* this private helper method checks the ArrayList for the requested Item name. If found, return the Item.
* If not found, return null.
* @param the name of the item
* @return the item object
*/
public Item cherForItem(String name){
for(Item i: carriedItems)
if(name.compareTo(i.getName())==0)
return i;
return null;
}
编译时,我得到一个不兼容的类型:java.lang.Object无法转换为Item。我知道这意味着它需要一个Item对象,但我认为for-each循环中的最后一个词是你所经历的事情的数组?我很困惑。你应该这样定义你的arraylist:
private ArrayList<Item> carriedItems;
private ArrayList carriedItems;
您没有指定arraylist将保存的数据类型…您应该这样定义arraylist:
private ArrayList<Item> carriedItems;
private ArrayList carriedItems;
您没有指定arraylist将保存的数据类型…您应该使用泛型
private ArrayList<Item> carriedItems;
public Item getItem(){
// your code
}
private ArrayList carriedItems;
公共项getItem(){
//你的代码
}
泛型是用来解决这些问题的。你应该使用泛型
private ArrayList<Item> carriedItems;
public Item getItem(){
// your code
}
private ArrayList carriedItems;
公共项getItem(){
//你的代码
}
泛型是用来解决这些问题的。正如brso05所指出的,您必须使用模板括号指定ArrayList内容的数据类型(否则内容将转换为Java.Lang.Object) 在声明ArrayList变量carriedItems时指定类型,应该可以:
private ArrayList<Item> carriedItems;
/**
* this private helper method checks the ArrayList for the requested Item name. If found, return the Item.
* If not found, return null.
* @param the name of the item
* @return the item object
*/
public Item cherForItem(String name){
for(Item i: carriedItems)
if(name.compareTo(i.getName())==0)
return i;
return null;
}
private ArrayList carriedItems;
/**
*此私有帮助器方法检查ArrayList中请求的项名称。如果找到,请返回该项目。
*如果未找到,则返回null。
*@param项目的名称
*@返回物品对象
*/
公共项cherForItem(字符串名称){
用于(项目一:carriedItems)
if(name.compareTo(i.getName())==0)
返回i;
返回null;
}
正如brso05所指出的,您必须使用模板括号指定ArrayList内容的数据类型(否则内容将转换为Java.Lang.Object)
在声明ArrayList变量carriedItems时指定类型,应该可以:
private ArrayList<Item> carriedItems;
/**
* this private helper method checks the ArrayList for the requested Item name. If found, return the Item.
* If not found, return null.
* @param the name of the item
* @return the item object
*/
public Item cherForItem(String name){
for(Item i: carriedItems)
if(name.compareTo(i.getName())==0)
return i;
return null;
}
private ArrayList carriedItems;
/**
*此私有帮助器方法检查ArrayList中请求的项名称。如果找到,请返回该项目。
*如果未找到,则返回null。
*@param项目的名称
*@返回物品对象
*/
公共项cherForItem(字符串名称){
用于(项目一:carriedItems)
if(name.compareTo(i.getName())==0)
返回i;
返回null;
}