我有这个课
public class Bid {
private User buyer;
private double bidValue;
public Bid(User buyer, double bidValue) {
if(buyer == null || bidValue <1) {
throw new IllegalArgumentException();
}
this.buyer = buyer;
this.bidValue = bidValue;
}
public User getBuyer() {
return buyer;
}
public double getBidValue() {
return bidValue;
}
public String toString() {
return this.buyer + " bid £" + this.bidValue;
}
}
和这个班
import java.util.*;
public class Product {
private int productId;
private String productName;
private double reservedPrice;
private List<Bid> bids = null;
public Product(int productId, String productName, double reservedPrice) {
this.productId = productId;
this.productName = productName;
this.reservedPrice = reservedPrice;
this.bids = new ArrayList<Bid>();
}
public Bid getHighestBid() {
double max = 0.0;
for(Bid bidValue :bids) {
if(bidValue.getBidValue() > max)
max = bidValue.getBidValue();
}
return null;
}
}
在getHighestBid方法中,我试图确定用户已放置的最高唯一出价,但是由于返回类型必须为Bid,我不确定如何做到这一点,而且我一直无法确定max不能解析为double类型。尽管我确实理解这意味着什么,但是我不确定如何解决它。
最佳答案
public Bid getHighestBid() {
Bid max = null;
for(Bid bidValue :bids) {
if(max==null || bidValue.getBidValue() > max.getBidValue())
max = bidValue;
}
return max;
}
您必须存储Bid对象,而不仅是值,然后对照它进行检查。