我有这个课

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对象,而不仅是值,然后对照它进行检查。

10-08 09:22