java创建方法并引用_java – 如何创建方法引用列表?

我需要处理一个列表,并为每个项目调用目标对象上的不同方法.看起来很优雅我可以创建一个方法引用列表来执行此操作,因此对于列表中的每个索引,我可以调用与其对应的适当方法引用.

private final static List> METHODS = (List>) Arrays.asList(

TargetClass::setValue1,

TargetClass::setValue2,

TargetClass::setValue3,

TargetClass::setValue4,

TargetClass::setValue5);

但是,Eclipse正在使用错误标记这些错误.此表达式的目标类型必须是功能接口.现在,TargetClass这里是一个普通的类,而不是一个接口…这是否意味着没有办法完成我在这里尝试做的事情?

解决方法:

您的方法引用可能与Consumer< String>不匹配.功能界面.

例如,此代码通过编译:

private final static List> METHODS = Arrays.asList(

Double::valueOf,

Integer::valueOf,

String::length);

由于您的方法似乎不是静态的,因此它们与Consumer< String>不匹配,因为这些方法有一个额外的隐式参数 – 该方法将应用于的实例.

您可以使用BiConsumer< TargetClass,String> :

private final static List> METHODS = Arrays.asList(

TargetClass::setValue1,

TargetClass::setValue2,

TargetClass::setValue3,

TargetClass::setValue4,

TargetClass::setValue5);

标签:method-reference,java,java-8

来源: https://codeday.me/bug/20190823/1702571.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值