lambda表达式用在jdk8 中,用来代替匿名方法;
简单例子如下:
//java 8方式 new Thread (() -> System.out.println("")).start();
又如:
List list=new ArrayList<>(); list.add("asdfsafsaf"); list.forEach((param) -> System.out.println(param));再回顾下匿名类,比如new A().getMethod()方法就是匿名类;Comparator<String> comp = (first, second) // Same as (String first, String second) -> Integer.compare(first.length(), second.length());除此有初步了解外,再了解一下jdk8当中对collections新加的接口方法java.util.Collection接口添加新方法,如stream()、parallelStream()、forEach()和removeIf()等等。
stream:Stream主要是对collections原有功能的增强,比如聚合,过滤等功能;@return a sequential {@code Stream} over the elements in this collectionList<String> output = wordList.stream(). map(String::toUpperCase). collect(Collectors.toList());
如:
Integer[] sixNums = {1, 2, 3, 4, 5, 6}; Integer[] evens = Stream.of(sixNums).filter(n -> n%2 == 0).toArray(Integer[]::new); /* for(Integer z:evens){ System.out.println(z); }*/ Arrays.stream(evens).forEach(n -> System.out.println(n));jdk的异步代码如下:
public String senSms(String mobile,String msg, String appType, String deviceType){ /*if (envFile.getCloseSmsSend() == 1){ return ""; }*/ CompletableFuture.supplyAsync(() -> { String code = sendSmsCenter(mobile, msg, VerifyUtil.isInteger(appType) ? Integer.valueOf(appType) : null, VerifyUtil.isInteger(deviceType) ? Integer.valueOf(deviceType) : null); return code; }, taskExecutor); return ""; }