拥抱Java8第一弹
package creative.air.java8.common;import java.time.LocalDate;import java.time.Period;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoUnit;import java.util.Arrays;import java.util.Comparator;import java.util.List;import java.util.function.Predicate;import java.util.stream.IntStream;/** * A First Taste for JDK8 * Created by feuyeux@gmail.com * Date: Jan 16 2014 * Time: 2:02 PM */public class FirstApp { @FunctionalInterface public interface Task { void run(); /*1. given default method in functional interface(or a SAM type)*/ default void cancel() { } } public static void schedule(Task task) { task.run(); } public static void main(String[] args) { /*2. Lambda Expressions for anonymous class*/ { /* schedule(new Task() { @Override public void run() { System.out.println("Hello world!"); } }); */ schedule(() -> { System.out.println("Hello world!"); }); } List<String> versions = Arrays.asList("JDK7", "JDK8"); /*3. method reference :: 126 Lambda Expressions & Virtual Extension Methods*/ { /* versions.sort(new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.compareTo(o1); } }); */ /* versions.sort((o1, o2) -> o1.compareTo(o2)); */ Comparator<? super String> comparator = String::compareTo; versions.sort(comparator); System.out.println("JDK versions:" + versions); } /*4. 107 Bulk Data Operations for Collections*/ { /* versions.parallelStream().filter( s -> s.equals("JDK8") ).map( s -> "Develop in " + s + " with Pleasure!" ).forEach( System.out::println ); */ Predicate<? super String> predicate = s -> s.equals("JDK8"); versions.parallelStream().filter(predicate).map( s -> String.format("Develop in %s with Pleasure!", s) ).forEach( System.out::println ); IntStream range = IntStream.range(101, 150); range.parallel().filter(i -> i % 10 == 0).sequential().forEach(System.out::println); } /*JSR 310*/ { Period period = Period.between(LocalDate.parse("1979-03-03"), LocalDate.now()); System.out.printf("my age is:%d%n", period.getYears()); System.out.printf("Touch JSR310 %s.%n", LocalDate.of(2014, 1, 16)); LocalDate bjDate = LocalDate.of(2004, 8, 26); System.out.println(bjDate.plus(9, ChronoUnit.YEARS) .plus(6, ChronoUnit.MONTHS) .plus(5, ChronoUnit.DAYS).format(DateTimeFormatter.ofPattern("E MM/dd/yyyy"))); } }}
?
1 楼 white_crucifix 22 小时前 看上去很好玩哎,好想玩一下,java越来越与时俱进了 2 楼 alvin198761 20 小时前 java 7都没有搞定,java 8就来了 3 楼 panda0001 12 小时前 这还是java吗 4 楼 sootv 10 小时前 我怎么感觉好乱 5 楼 bitray 1 小时前 panda0001 写道这还是java吗