2012-09-21 184 views
-6

我想返回数组中的最高和最低值,我无法获得它的编译。对我来说,似乎一切都应该是好的,但我不断收到return new int[] = {minBid, highBid}奇怪的错误。为什么不能编译?

public int[] rangeOfBids() 
{ 
    Bid minBid = bids[0]; 
    for(int i = 0; i < bids.length; i++) 
    { 
     if (bids[i].higherBidThan(minBid)) 
      bids[i] = minBid; 
    } 

    Bid highBid = bids[0]; 
    for(int i = 0; i < bids.length; i++) 
    { 
     if (bids[i].higherBidThan(highBid)) 
      highBid = bids[i]; 
    } 

     return new int[] = {minBid, highBid}; 
} 
+0

嗨,欢迎来到stackoverflow!请阅读[*本*](http://stackoverflow.com/faq#howtoask) – alfasin

回答

0

返回类型应该是Bid[]和值return new Bid[] {minBid, highBid}; int数组是整数数组。

方法应该是

public Bid[] rangeOfBids() 
+0

它仍然给我同样的错误。我明白为什么它应该是Bid [],但它仍然没有编译。任何想法? –

0

int[]只能存储int值。 Bid对象不是int s。所以你的return语句不会被编译。

如果您想将其更改为return new Bid[] = { minBid, highBid };(如上所述),您还需要将方法的返回类型更改为Bid[]

2

你有几个问题。

首先,使用

return new int[] {minBid, highBid}; 

没有=迹象。

其次,minBidhighBig没有int,他们是Bid,所以你需要将它们转换为int或更改返回类型Bid[],并使用

return new Bid[] {minBid, highBid}; 

接下来,线:

if (bids[i].higherBidThan(minBid)) 
    bids[i] = minBid; 

应该是:

if (bids[i].higherBidThan(minBid)) 
    minBid = bids[i]; 

而且应该解决它。

+0

非常感谢你的工作! –