Lamda表达式在其他语言中比较常见,如C#等,主要使用场景是集合类以及数据库sql语句,还是比较Convenient的,如果能够熟练使用的话,还是可以少些很多代码的。尤其是引入了函数式接口这个概念,是取代匿名内部类以及事件定义的不错方式。
package com.ninetowns.trade.javase8;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
/**
* @Description Lamda Expression
* @author gaop
* @Date 2016/1/16 14:10
*/
public class LamdaExpression {
/**Comparator Interface Implementation*/
@SuppressWarnings("unused")
private static final Comparator<String> comparator=(x,y)->{
return Integer.compare(x.length(), y.length());
};
private static final Runnable run=()->{
System.out.println("RUNNABLE");
try{
Thread.sleep(1000);
}catch(Exception ex){
ex.printStackTrace();
}
};
/**方法引用*/
Thread thread=new Thread(/**代替Runnable接口实现*/super::toString);
/**Interface可以包含静态方法和default方法*/
public static void main(String[] args) {
Arrays.sort(new String[]{"as","rss","ttwer"},comparator);
/**
* :: 可用于static 方法 or 实例方法
* */
Arrays.sort(new String[]{"as","rss","ttwer"},String::compareToIgnoreCase);
List<String> lists=Arrays.asList(new String[]{"as","rss","ttwer"});
lists.sort(comparator);
}
}