【发布时间】:2018-12-12 23:21:02
【问题描述】:
我有这门课
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 并且我不断得到该最大值无法解析为键入双。虽然我明白这意味着什么,但我不知道如何解决它。
【问题讨论】:
-
在 for 循环之外声明一个竞价变量(如 max),然后在 if 语句中声明 bid = bidValue(在 max=bidValue.getBidValue 之后)。然后返回出价。