Java使用者能够接受和返回布尔值或字符串

Java使用者能够接受和返回布尔值或字符串,java,lambda,syntax,interface,Java,Lambda,Syntax,Interface,这是一个经常使用的用户: public static void main(String[] args){ Consumer<String> consumer = (str) -> { //stuff }; consumer.accept(args[0]); } 退货的消费者不再是消费者了。它成为一个: Predicate consumer=(str)->{ 返回str.equals(“是”); }; 您在标题中还提到希望函数接口返回

这是一个经常使用的用户:

public static void main(String[] args){
    Consumer<String> consumer = (str) -> {
        //stuff
    };

    consumer.accept(args[0]);
}

退货的消费者不再是消费者了。它成为一个:

Predicate consumer=(str)->{
返回str.equals(“是”);
};

您在标题中还提到希望函数接口返回
字符串
。在这种情况下,使用。

对于希望传递
字符串并获取
布尔值的情况,可以使用。如果要返回以下原语之一,也有类似的函数:

  • 对于
    int
  • 对于
    long
    :,以及
  • 对于
    double
与和一致,原语
字节
字符
浮点
没有进一步的
ToFunction
接口


对于希望传递
字符串
并获取
字符串
的情况,可以使用

对于希望传递一些
T
并获得一些
R
的一般情况,可以使用


然而,这是否能提高代码的可读性是另一个问题…

根据定义,消费者不会返回任何东西。返回布尔值的函数接口称为谓词。我不知道,谢谢。
谓词
仅限于
布尔
作为returnt类型。一般情况是
函数
@Turing85我知道这一点。但是从这个问题来看,OP需要一个函数接口,该接口返回一个基元
布尔值
。您不能将基元
布尔
类型放入
函数中,可以吗?您可以使用
函数
,但由于
谓词
存在,因此它是多余的。=)
public static void main(String[] args){
    Consumer<String> consumer = (str) -> {
        return str.equals("yes"); //type mis-match error because consumer is void not boolean
    };

    boolean a = consumer.accept(args[0]); //type mis-match error because consumer is void not boolean
}
public interface ConsumerB {
    boolean accept(String s);
}
Predicate<String> consumer = (str) -> {
    return str.equals("yes"); 
};