您好我刚开始学习Lambda表达式,如何使用Lambda表达式编写它?
public static void greaterThanFive(String str){
if(str.length() > 5){
System.out.println("String length is larger than 5 ");
}else{
System.err.println("String length less than 5");
}
如果它只是一个if语句,我可以这样做:
Predicate<String> greaterThanFive = (s)-> s.length() > 5;
但我无法确定何时发出if-else声明。
答案 0 :(得分:0)
Comparator<String> c = (String first, String second) -> {
if (first.length() < second.length()) return -1;
else if (first.length() > second.length()) return 1;
else return 0;
};
我相信这可以回答你的问题。有关更多信息,请阅读Java8以获得真正的不耐烦。这是一本非常好的书。
答案 1 :(得分:0)
使用块,您可以创建具有多个语句或大语句的lambda表达式(如if-else)。例如:
new Thread( () -> { // Btw, you can use java.lang.Runnable with a lambda
System.out.println("A wild NEW THREAD appeared!"); // :)
try {
Thread.sleep(5000);
} catch (InterruptedException e) {}
System.out.println("Enemy NEW THREAD ran away!");
});
这意味着您所要做的就是将if-else包含在lambda的块中:
Consumer<String> greaterThanFive = (s) -> {
// ...
};
请注意,块后面有分号。