功能接口方法参考

问题描述 投票:1回答:1

我是java 8的新手并尝试这个。我有一个界面

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

以这种方式使用它:

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

给出错误:

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

请说明上述代码有什么问题

java lambda java-8 functional-interface
1个回答
3
投票

你只需要

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

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

CurrencyRateDao currencyRateDao = (srcCur, tarCur, month) -> Double.MAX_VALUE;
// accepts three arguments and returns a Double value
© www.soinside.com 2019 - 2024. All rights reserved.