假设我们有一个名为 Contract 的 Java 类型,它代表业务合同。类 Contract 中的方法头如下:
public Date finish()
返回一个表示合同完成日期的对象。
public void update(Date d)
更改调用它的对象的状态,以表示在参数给出的日期之后适用的合同条款的更改。
public int payment(Date d)
返回作为其参数给出的日期到期的付款,这将始终是一个大于 0 的整数。
public Set<Contract> subcontracts()
返回一个集合,表示调用此方法的对象所代表的合约的所有子合约。
被问到的问题之一:
在类 Contract 中编写一个实例方法,称为最大支付。当在代表合同的对象上调用时,此方法应采用 Date 参数并返回在给定日期到期的最大付款分包合同的表示。如果合约没有子合约,则应返回调用该方法的对象。
我的第一个问题是我不知道如何返回具有最大值的合同对象..或者如果合同没有子合同,则应该返回调用该方法的对象......
这是我到目前为止所拥有的......但它不喜欢我从内部类调用方法支付:
public Contract biggestPayment(Date d)
{
List<Contract> clist = new ArrayList<Contract>(subc);
Collections.sort(clist, new Comparator<Contract>()
{
public int compare(Contract c1, Contract c2)
{
c1.payment(d).compareTo(c2.payment(d));
}
});
.......
}
任何帮助,将不胜感激。