在Java中使用供应商的传递方法参考

时间:2019-11-22 13:46:06

标签: java

有没有办法在这两行中使用相同的方法引用作为吸气剂?我尝试了一个与第一个语句一起使用的Supplier,但是第二个语句需要一个Function。

Integer id = Integer.parseInt(accountModel.getExternalId());

accountsWithNonNumericIds.sort(Comparator.comparing(AccountModel::getExternalId));

1 个答案:

答案 0 :(得分:1)

方法引用可以生成Function,但不能生成Supplier,因为要获取ID,您需要知道从中获取该ID的帐户。

Function<AccountModel,String> func = AccountModel::getExternalId;

Integer id = Integer.parseInt(func.apply(accountModel));

accountsWithNonNumericIds.sort(Comparator.comparing(func));