我是Java 8的新手,请尝试此操作。
我有一个界面

public interface CurrencyRateDao{
    Double getCurrencyRate(String srcCur,String tarCur, int month);
}


通过这种方式使用它:

CurrencyRateDao currencyRateDao = new CurrencyRateDaoImpl();
Double rate = ('USD','INR',1) -> currencyRateDao::getCurrencyRate;


出现错误:


  此表达式的目标类型必须是功能接口。


请提出以上代码有什么问题

最佳答案

您只需要

Double rate = currencyRateDao.getCurrencyRate("USD", "INR", 1);


如果将接口表示为lambda,则它看起来像:

CurrencyRateDao currencyRateDao = (srcCur, tarCur, month) -> Double.MAX_VALUE;
// accepts three arguments and returns a Double value

09-26 15:39