kay*_*kay 2 java syntax lambda interface
这是一个常规消费者用法:
public static void main(String[] args){
Consumer<String> consumer = (str) -> {
//stuff
};
consumer.accept(args[0]);
}
Run Code Online (Sandbox Code Playgroud)
这是我试图做的事情(使消费者返回布尔值)
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
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能操纵消费者以布尔值的形式返回?
没有明显创建一个全新的界面......(下)
public interface ConsumerB {
boolean accept(String s);
}
Run Code Online (Sandbox Code Playgroud)
Tur*_*g85 11
String对于想要传递 a并获取 a的情况boolean,可以使用Predicate<String>. 如果想要返回以下原语之一,则有类似的函数:
int:ToIntFunction<String>,long:ToLongFunction<String>和double:ToDoubleFunction<String>。与-和包的其余部分java.util.function一致,原语、和没有进一步的接口。java.util.streamTo<Primitive>Functionbyteshortcharfloat
String对于想要传递 a并获取 a的情况String,可以使用UnaryOperator<String>.
对于想要传递一些T并获取一些的一般情况R,可以使用Function<T, R>.
然而,这是否提高了代码的可读性是另一个问题......
退货的消费者不再是消费者.它变成了Predicate<String>:
Predicate<String> consumer = (str) -> {
return str.equals("yes");
};
Run Code Online (Sandbox Code Playgroud)
您还在标题中提到您希望功能界面返回a String.在那种情况下,使用Function<String, String>.
| 归档时间: |
|
| 查看次数: |
2604 次 |
| 最近记录: |