使用Java Lambda的自定义比较器参数

时间:2018-04-17 17:04:14

标签: java lambda

我有一些Java代码按上次修改时间按降序对对象列表进行排序:

public void getLists(final String sortBy) { }

这很好用,但我想使用方法参数进行自定义排序:

sortBy

假设modifiedtimeinvestmentAmount = eval(input("Enter investment amount: ")) annualInterestRate = eval(input("Enter annual interest rate: ")) monthlyInterestRate = (annualInterestRate) / 10 / 12 numberOfYears = eval(input("Enter number of years: ")) numberOfMonths = numberOfYears * 12 futureInvestmentValue = investmentAmount * (1 + monthlyInterestRate) **\ numberOfMonths print("Accumulated value is", futureInvestmentValue) ,我该如何调整lambda才能使用它?

我想我需要使用Java反射,但我不确定。

1 个答案:

答案 0 :(得分:0)

反思是一个坏主意。您的方法应为:

  public List<ObjModel> getLists(Comparator<ObjModel> sortby) {
      return lists.stream().sorted(sortby).collect(Collectors.toList());
  }

使用该方法,您可以在参数中使用lambda来确定要用于对列表进行排序的ObjModel类的哪个字段