我实现我自己的Java类为食分选List<T>
。我在比较陈述中做出了突破点,并且它不起作用,因为我意想不到!Java的比较<T>给人意想不到的结果
下面是代码:
if(doy2 < don && doy1>don)
{
return 1;
}
else if (doy2 > don && doy1<don)
{
return -1;
}
else
{
return 0;
}
即使doy2 > don && doy1<don
语句评估为真,代码达到return -1
,但它也去其他部分并返回0到底为什么?
编辑:完整的代码
public class DateCompartor implements Comparator<BirthdayContact> {
@Override
public int compare(BirthdayContact arg0, BirthdayContact arg1) {
Date now=new Date();
Date bd1=arg0.GetBirthDay();
Date bd2=arg1.GetBirthDay();
DateTime dt1=new DateTime(bd1);
DateTime dtnow=new DateTime(now);
DateTime dt2=new DateTime(bd2);
int doy1=dt1.getDayOfYear();
int doy2=dt2.getDayOfYear();
int don=dtnow.getDayOfYear();
if(doy2 < don && doy1>don)
{
return 1;
}
else if (doy2 > don && doy1<don)
{
return -1;
}
else
{
return 0;
}
}
}
我与当前日期进行比较的两个日期,以及日益接近当前的日期,应该得到上在列表中。
你的代码段是非常不完整。另外,究竟是什么奇怪的?你给了什么输入,你得到了什么输出? – jlemos 2012-02-26 16:30:23
什么是输入和预期输出以及实际输出? – 2012-02-26 16:30:57
“doy”==“一年中的哪一天”?什么是“不”? – duffymo 2012-02-26 16:31:16