java - 功能接口(interface)方法引用

标签 java lambda java-8 functional-interface

我是 Java 8 的新手,正在尝试这个。 我有一个界面

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

以这种方式访问​​:

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

报错:

target type of this expression must be a functional interface.

请指出上面的代码有什么问题

最佳答案

你只需要

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

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

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

关于java - 功能接口(interface)方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54980629/

相关文章:

java - Spring 应用程序将文档保存到测试数据库而不是自定义数据库

java - Android 10 中没有适用于 Android 开发人员的 IMEI

java - Java 中的 Lambda 与迭代器

java - 在 Java 8 中使用 Java 7 比较器

Java 8,Stream - 查找数字总和超过 10 的字符串的数量

java - 当插入父级及其子级时,Hibernate 可以在插入子级时设置父级 id 而不必在插入子级后更新吗?

java - 声明后使静态属性不可变

node.js - Windows 10安装serverless后命令提示符无法运行 "serverless"

java - 在 Java 中使用内联 lambda 表达式时出现编译器错误

java - 如何使聚合 java8 具有特定条件