我有拍卖任务的代码。有 4 个类:Item,Bid,Auction,Person。 Item包含:Item 的名称, Item 的描述, Item 的minPrice , LinkedList of allBids 拍卖包含:LinkedList of allItems,LinkedList of bidings Bid包含:Bid 的价格, Person 类的 对象person包含:姓名投标人。
所以在这次 sho brifing 之后我想总结一下我的问题。如果您有其他问题,我会提供我的类图。 https://drive.google.com/open?id=19mjayMIWFRNygvzP2xIGEWVzZcKNXIZD
Auction类中有一个addBid(String itemName ,String nameOfBidder,long price)
方法,应该从投标人LinkedList中找到投标人(如果它不存在则创建它)然后根据 Item 的名称找到正确的,然后使用Item类中的addBid方法添加新的投标项对象。
我的代码中有一个错误,当我试图根据它的itemName找出一个 Item 时,如果不存在具有这样名称的项目对象,它应该返回我NoSuchElementException 。但是每次我都没有通过这个检查,其实我不明白为什么。
我试图通过使用不同类型的循环(例如 foreach)来解决我的问题。但是在几天内无法解决它。
这是我从 Auction 类的 addBid 方法中获取的方法
public void addBid(String ItemName, String nameOfBidder, long price) {
if(ItemName==null||nameOfBidder==null){
throw new NullPointerException("Name of the bidder cannot be null");
}
if(ItemName==""||nameOfBidder==""||price==0||price<0){
throw new IllegalArgumentException("Name of the bidder cannot be empty");
}
for(Person p:bidders) {
if (bidders.contains(p.getName()==nameOfBidder)) {
for (Item i:allItems ) {
if(!(allItems.contains(i.getName()))){
throw new NoSuchElementException("There is no such Item in the Auction");
}
if(allItems.contains(i.getName()==ItemName)){
i.addBid(p,price);
}
}
}
else {
Person person = new Person(nameOfBidder);
bidders.add(person);
for (Item i:allItems ) {
if(!(allItems.contains(i.getName()))){
throw new NoSuchElementException("There is no such Item in the Auction");
}
if(allItems.contains(i.getName()==ItemName)){
i.addBid(person,price);
}
}
}
}
}
喵喵时光机
相关分类