调用布尔变量java,java - 初始化可运行的Lambda数组(使用字符串arg并返回布尔值)和调用索引 - SO中文参考 - www.soinside.com...

本文介绍如何在Java中使用lambda表达式创建一个Runnable数组,每个元素接收一个String参数并返回布尔值,同时探讨为何编译时出现错误。作者通过实例代码展示了如何初始化和调用这些lambda函数。
摘要由CSDN通过智能技术生成

我能够使用lambda的返回void并使用哈希表获取0 args,请参阅此处 - > Create lambda two dimensional array

现在,我正在尝试创建一个Runnable[]数组,在索引中使用lambda,每个lambda接受一个String参数并返回一个布尔值。

这是代码......

public class testLambdaWithPrimitiveType {

private final String[] numArray = {"One", "Two", "Three"};

private boolean numFound = false;

testLambdaWithPrimitiveType(String num){

setNumFound(num);

}

private void setNumFound(String num){

Runnable[] runnableNumArray = {

() -> isStringOne(num),

() -> isStringTwo(num),

() -> isStringThree(num)

};

for (int numChecked = 0; numChecked < runnableNumArray.length; numChecked++){

if (runnableNumArray[numChecked].run(num)){

this.numFound = true;

}

}

}

private boolean isNumFound(){return this.numFound;}

private boolean isStringOne(String num){

return num.equals(numArray[0]);

}

private boolean isStringTwo(String num){

return num.equals(numArray[1]);

}

private boolean isStringThree(String num){

return num.equals(numArray[2]);

}

public static void main(String[] args) {

testLambdaWithPrimitiveType objectOne = new testLambdaWithPrimitiveType("One");

testLambdaWithPrimitiveType objectTwo = new testLambdaWithPrimitiveType("Two");

testLambdaWithPrimitiveType objectThree = new testLambdaWithPrimitiveType("Three");

testLambdaWithPrimitiveType objectFour = new testLambdaWithPrimitiveType("Four");

System.out.println(objectFour.isNumFound()); // false

System.out.println(objectThree.isNumFound()); // true

System.out.println(objectTwo.isNumFound()); // true

System.out.println(objectOne.isNumFound()); // true

}

}

它看起来像数组被正确初始化,但当我尝试调用索引if (runnableNumArray[numChecked].run(num)){时,我得到一个编译错误。知道为什么会这样吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值