嗨,大家不能迭代或从ItemSet
获取项目,这是我的代码
物品类别
public class Item {
private String id;
private int count;
private String name;
public int getcount() {
return this.count;
}
public Item(String name) {
this.name=name;
this.id = "";
}
public Item(String id, String name) {
this.name=name;
this.id=id;
}
public Item(int count) {
this.count=count;
}
public String getItemName() {
return this.name;
}
public String getItemId() {
return this.id;
}
public Item returnItems(ItemSet itemset) {
Item item=null;
return item;
}
}
ItemSet类保存项目列表
public class ItemSet {
private List<Item> hold;
ItemSet(Item item) {
hold = new ArrayList<Item>();
this.hold.add(item);
}
ItemSet() {
//throw new UnsupportedOperationException("Not yet implemented");
}
public List<Item> getItemSet() {
return this.hold;
}
public void addItems(Item item) {
hold = new ArrayList<Item>();
this.hold.add(item);
}
}
这是我的Transaction类保存的ItemSets列表
public class Transaction {
private List<ItemSet> trans;
public ItemSet getUniqueItem() {
ResultSet rs;
Database d=new Database();
ItemSet unique=new ItemSet();
String query="Select id,name from item";
rs=d.sendQuery(query);
try{
while(rs.next()) {
System.out.println(rs.getString(1)+"\t"+rs.getString(2));
Item item=new Item(rs.getString(1),rs.getString(2));
unique.addItems(item);
}
} catch(Exception e) {
System.out.print(e.getMessage());
}
return unique;
}
}
这是我的主班
public class Ap {
public static void main(String args[]) {
Transaction t=new Transaction();
Transaction Ci=new Transaction();
Transaction Li=new Transaction();
ItemSet I=t.getUniqueItem(); //11
}
}
我不知道如何从11的ItemSet获取项目
我尝试使用
foreach(Item i:I) {
}
但是我遇到了错误。
最佳答案
为了能够使用for (Item i : itemSet)
,您的ItemSet
类必须实现iterable接口。您可以通过在ItemSet
类中添加以下方法来做到这一点:
public Iterator<Item> iterator() {
return hold.iterator();
}
请记住,您应该在类声明中添加
implements Iterable<Item>
。请注意,您始终可以使用
for (Item i : itemSet.getItemSet())
。关于java - 无法迭代itemSet中的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12221296/