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");
};