From 9fe1770fb4371e2639a37628d4f5da67073b002f Mon Sep 17 00:00:00 2001 From: Pdvlp Date: Thu, 30 Jul 2015 13:35:10 +0800 Subject: [PATCH 01/11] become to a maven project easier to import and compiler --- .gitignore | 8 ++++- pom.xml | 31 +++++++++++++++++++ .../java8/samples/concurrent/Atomic1.java | 0 .../concurrent/CompletableFuture1.java | 0 .../concurrent/ConcurrentHashMap1.java | 0 .../samples/concurrent/ConcurrentUtils.java | 0 .../java8/samples/concurrent/Executors1.java | 0 .../java8/samples/concurrent/Executors2.java | 0 .../java8/samples/concurrent/Executors3.java | 0 .../java8/samples/concurrent/Lock1.java | 0 .../java8/samples/concurrent/Lock2.java | 0 .../java8/samples/concurrent/Lock3.java | 0 .../java8/samples/concurrent/Lock4.java | 0 .../java8/samples/concurrent/Lock5.java | 0 .../java8/samples/concurrent/Lock6.java | 0 .../samples/concurrent/LongAccumulator1.java | 0 .../java8/samples/concurrent/LongAdder1.java | 0 .../java8/samples/concurrent/Semaphore1.java | 0 .../java8/samples/concurrent/Semaphore2.java | 0 .../samples/concurrent/Synchronized1.java | 0 .../samples/concurrent/Synchronized2.java | 0 .../java8/samples/concurrent/Threads1.java | 0 .../java8/samples/lambda/Interface1.java | 0 .../java8/samples/lambda/Lambda1.java | 0 .../java8/samples/lambda/Lambda2.java | 0 .../java8/samples/lambda/Lambda3.java | 0 .../java8/samples/lambda/Lambda4.java | 0 .../winterbe/java8/samples/lambda/Person.java | 0 .../java8/samples/misc/Annotations1.java | 0 .../java8/samples/misc/CheckedFunctions.java | 0 .../java8/samples/misc/Concurrency1.java | 0 .../winterbe/java8/samples/misc/Files1.java | 0 .../winterbe/java8/samples/misc/Maps1.java | 0 .../winterbe/java8/samples/misc/Math1.java | 0 .../winterbe/java8/samples/misc/String1.java | 0 .../java8/samples/nashorn/Nashorn1.java | 0 .../java8/samples/nashorn/Nashorn10.java | 0 .../java8/samples/nashorn/Nashorn11.java | 0 .../java8/samples/nashorn/Nashorn2.java | 0 .../java8/samples/nashorn/Nashorn3.java | 0 .../java8/samples/nashorn/Nashorn4.java | 0 .../java8/samples/nashorn/Nashorn5.java | 0 .../java8/samples/nashorn/Nashorn6.java | 0 .../java8/samples/nashorn/Nashorn7.java | 0 .../java8/samples/nashorn/Nashorn8.java | 0 .../java8/samples/nashorn/Nashorn9.java | 0 .../java8/samples/nashorn/Product.java | 0 .../java8/samples/nashorn/SuperRunner.java | 0 .../java8/samples/stream/Optional1.java | 0 .../java8/samples/stream/Optional2.java | 0 .../java8/samples/stream/Streams1.java | 0 .../java8/samples/stream/Streams10.java | 0 .../java8/samples/stream/Streams11.java | 0 .../java8/samples/stream/Streams12.java | 0 .../java8/samples/stream/Streams13.java | 0 .../java8/samples/stream/Streams2.java | 0 .../java8/samples/stream/Streams3.java | 0 .../java8/samples/stream/Streams4.java | 0 .../java8/samples/stream/Streams5.java | 0 .../java8/samples/stream/Streams6.java | 0 .../java8/samples/stream/Streams7.java | 0 .../java8/samples/stream/Streams8.java | 0 .../java8/samples/stream/Streams9.java | 0 .../java8/samples/time/LocalDate1.java | 0 .../java8/samples/time/LocalDateTime1.java | 0 .../java8/samples/time/LocalTime1.java | 0 66 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 pom.xml rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Atomic1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/CompletableFuture1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Executors1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Executors2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Executors3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock4.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock5.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Lock6.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/LongAccumulator1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/LongAdder1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Semaphore1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Semaphore2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Synchronized1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Synchronized2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/concurrent/Threads1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Interface1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Lambda4.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/lambda/Person.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Annotations1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/CheckedFunctions.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Concurrency1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Files1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Maps1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/Math1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/misc/String1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn10.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn11.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn4.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn5.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn6.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn7.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn8.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Nashorn9.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/Product.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/nashorn/SuperRunner.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Optional1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Optional2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams10.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams11.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams12.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams13.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams2.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams3.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams4.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams5.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams6.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams7.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams8.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/stream/Streams9.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/time/LocalDate1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/time/LocalDateTime1.java (100%) rename src/{ => main/java}/com/winterbe/java8/samples/time/LocalTime1.java (100%) diff --git a/.gitignore b/.gitignore index 77642f01..82bf54cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,10 @@ .DS_Store .idea *.iml -out \ No newline at end of file +out +/target/ + +.settings/org.eclipse.jdt.core.prefs +.settings/org.eclipse.m2e.core.prefs +.project +.classpath \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..a6fd6974 --- /dev/null +++ b/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + com.winterbe + java8-tutorial + 1.0.0 + + + + junit + junit + 4.12 + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.0 + + 1.8 + 1.8 + + + + + diff --git a/src/com/winterbe/java8/samples/concurrent/Atomic1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Atomic1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Atomic1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Atomic1.java diff --git a/src/com/winterbe/java8/samples/concurrent/CompletableFuture1.java b/src/main/java/com/winterbe/java8/samples/concurrent/CompletableFuture1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/CompletableFuture1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/CompletableFuture1.java diff --git a/src/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java b/src/main/java/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/ConcurrentHashMap1.java diff --git a/src/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java b/src/main/java/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java rename to src/main/java/com/winterbe/java8/samples/concurrent/ConcurrentUtils.java diff --git a/src/com/winterbe/java8/samples/concurrent/Executors1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Executors1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Executors1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Executors1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Executors2.java b/src/main/java/com/winterbe/java8/samples/concurrent/Executors2.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Executors2.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Executors2.java diff --git a/src/com/winterbe/java8/samples/concurrent/Executors3.java b/src/main/java/com/winterbe/java8/samples/concurrent/Executors3.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Executors3.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Executors3.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock2.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock2.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock2.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock2.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock3.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock3.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock3.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock3.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock4.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock4.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock4.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock4.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock5.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock5.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock5.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock5.java diff --git a/src/com/winterbe/java8/samples/concurrent/Lock6.java b/src/main/java/com/winterbe/java8/samples/concurrent/Lock6.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Lock6.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Lock6.java diff --git a/src/com/winterbe/java8/samples/concurrent/LongAccumulator1.java b/src/main/java/com/winterbe/java8/samples/concurrent/LongAccumulator1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/LongAccumulator1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/LongAccumulator1.java diff --git a/src/com/winterbe/java8/samples/concurrent/LongAdder1.java b/src/main/java/com/winterbe/java8/samples/concurrent/LongAdder1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/LongAdder1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/LongAdder1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Semaphore1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Semaphore1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Semaphore1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Semaphore1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Semaphore2.java b/src/main/java/com/winterbe/java8/samples/concurrent/Semaphore2.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Semaphore2.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Semaphore2.java diff --git a/src/com/winterbe/java8/samples/concurrent/Synchronized1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Synchronized1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Synchronized1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Synchronized1.java diff --git a/src/com/winterbe/java8/samples/concurrent/Synchronized2.java b/src/main/java/com/winterbe/java8/samples/concurrent/Synchronized2.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Synchronized2.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Synchronized2.java diff --git a/src/com/winterbe/java8/samples/concurrent/Threads1.java b/src/main/java/com/winterbe/java8/samples/concurrent/Threads1.java similarity index 100% rename from src/com/winterbe/java8/samples/concurrent/Threads1.java rename to src/main/java/com/winterbe/java8/samples/concurrent/Threads1.java diff --git a/src/com/winterbe/java8/samples/lambda/Interface1.java b/src/main/java/com/winterbe/java8/samples/lambda/Interface1.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Interface1.java rename to src/main/java/com/winterbe/java8/samples/lambda/Interface1.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda1.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda1.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda1.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda1.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda2.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda2.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda3.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda3.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java diff --git a/src/com/winterbe/java8/samples/lambda/Lambda4.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Lambda4.java rename to src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java diff --git a/src/com/winterbe/java8/samples/lambda/Person.java b/src/main/java/com/winterbe/java8/samples/lambda/Person.java similarity index 100% rename from src/com/winterbe/java8/samples/lambda/Person.java rename to src/main/java/com/winterbe/java8/samples/lambda/Person.java diff --git a/src/com/winterbe/java8/samples/misc/Annotations1.java b/src/main/java/com/winterbe/java8/samples/misc/Annotations1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Annotations1.java rename to src/main/java/com/winterbe/java8/samples/misc/Annotations1.java diff --git a/src/com/winterbe/java8/samples/misc/CheckedFunctions.java b/src/main/java/com/winterbe/java8/samples/misc/CheckedFunctions.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/CheckedFunctions.java rename to src/main/java/com/winterbe/java8/samples/misc/CheckedFunctions.java diff --git a/src/com/winterbe/java8/samples/misc/Concurrency1.java b/src/main/java/com/winterbe/java8/samples/misc/Concurrency1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Concurrency1.java rename to src/main/java/com/winterbe/java8/samples/misc/Concurrency1.java diff --git a/src/com/winterbe/java8/samples/misc/Files1.java b/src/main/java/com/winterbe/java8/samples/misc/Files1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Files1.java rename to src/main/java/com/winterbe/java8/samples/misc/Files1.java diff --git a/src/com/winterbe/java8/samples/misc/Maps1.java b/src/main/java/com/winterbe/java8/samples/misc/Maps1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Maps1.java rename to src/main/java/com/winterbe/java8/samples/misc/Maps1.java diff --git a/src/com/winterbe/java8/samples/misc/Math1.java b/src/main/java/com/winterbe/java8/samples/misc/Math1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/Math1.java rename to src/main/java/com/winterbe/java8/samples/misc/Math1.java diff --git a/src/com/winterbe/java8/samples/misc/String1.java b/src/main/java/com/winterbe/java8/samples/misc/String1.java similarity index 100% rename from src/com/winterbe/java8/samples/misc/String1.java rename to src/main/java/com/winterbe/java8/samples/misc/String1.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn1.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn1.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn1.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn1.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn10.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn10.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn10.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn10.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn11.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn11.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn11.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn11.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn2.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn2.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn2.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn2.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn3.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn3.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn3.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn3.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn4.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn4.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn4.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn4.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn5.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn5.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn5.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn5.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn6.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn6.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn6.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn6.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn7.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn7.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn7.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn7.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn8.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn8.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn8.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn8.java diff --git a/src/com/winterbe/java8/samples/nashorn/Nashorn9.java b/src/main/java/com/winterbe/java8/samples/nashorn/Nashorn9.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Nashorn9.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Nashorn9.java diff --git a/src/com/winterbe/java8/samples/nashorn/Product.java b/src/main/java/com/winterbe/java8/samples/nashorn/Product.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/Product.java rename to src/main/java/com/winterbe/java8/samples/nashorn/Product.java diff --git a/src/com/winterbe/java8/samples/nashorn/SuperRunner.java b/src/main/java/com/winterbe/java8/samples/nashorn/SuperRunner.java similarity index 100% rename from src/com/winterbe/java8/samples/nashorn/SuperRunner.java rename to src/main/java/com/winterbe/java8/samples/nashorn/SuperRunner.java diff --git a/src/com/winterbe/java8/samples/stream/Optional1.java b/src/main/java/com/winterbe/java8/samples/stream/Optional1.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Optional1.java rename to src/main/java/com/winterbe/java8/samples/stream/Optional1.java diff --git a/src/com/winterbe/java8/samples/stream/Optional2.java b/src/main/java/com/winterbe/java8/samples/stream/Optional2.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Optional2.java rename to src/main/java/com/winterbe/java8/samples/stream/Optional2.java diff --git a/src/com/winterbe/java8/samples/stream/Streams1.java b/src/main/java/com/winterbe/java8/samples/stream/Streams1.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams1.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams1.java diff --git a/src/com/winterbe/java8/samples/stream/Streams10.java b/src/main/java/com/winterbe/java8/samples/stream/Streams10.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams10.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams10.java diff --git a/src/com/winterbe/java8/samples/stream/Streams11.java b/src/main/java/com/winterbe/java8/samples/stream/Streams11.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams11.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams11.java diff --git a/src/com/winterbe/java8/samples/stream/Streams12.java b/src/main/java/com/winterbe/java8/samples/stream/Streams12.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams12.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams12.java diff --git a/src/com/winterbe/java8/samples/stream/Streams13.java b/src/main/java/com/winterbe/java8/samples/stream/Streams13.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams13.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams13.java diff --git a/src/com/winterbe/java8/samples/stream/Streams2.java b/src/main/java/com/winterbe/java8/samples/stream/Streams2.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams2.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams2.java diff --git a/src/com/winterbe/java8/samples/stream/Streams3.java b/src/main/java/com/winterbe/java8/samples/stream/Streams3.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams3.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams3.java diff --git a/src/com/winterbe/java8/samples/stream/Streams4.java b/src/main/java/com/winterbe/java8/samples/stream/Streams4.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams4.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams4.java diff --git a/src/com/winterbe/java8/samples/stream/Streams5.java b/src/main/java/com/winterbe/java8/samples/stream/Streams5.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams5.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams5.java diff --git a/src/com/winterbe/java8/samples/stream/Streams6.java b/src/main/java/com/winterbe/java8/samples/stream/Streams6.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams6.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams6.java diff --git a/src/com/winterbe/java8/samples/stream/Streams7.java b/src/main/java/com/winterbe/java8/samples/stream/Streams7.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams7.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams7.java diff --git a/src/com/winterbe/java8/samples/stream/Streams8.java b/src/main/java/com/winterbe/java8/samples/stream/Streams8.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams8.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams8.java diff --git a/src/com/winterbe/java8/samples/stream/Streams9.java b/src/main/java/com/winterbe/java8/samples/stream/Streams9.java similarity index 100% rename from src/com/winterbe/java8/samples/stream/Streams9.java rename to src/main/java/com/winterbe/java8/samples/stream/Streams9.java diff --git a/src/com/winterbe/java8/samples/time/LocalDate1.java b/src/main/java/com/winterbe/java8/samples/time/LocalDate1.java similarity index 100% rename from src/com/winterbe/java8/samples/time/LocalDate1.java rename to src/main/java/com/winterbe/java8/samples/time/LocalDate1.java diff --git a/src/com/winterbe/java8/samples/time/LocalDateTime1.java b/src/main/java/com/winterbe/java8/samples/time/LocalDateTime1.java similarity index 100% rename from src/com/winterbe/java8/samples/time/LocalDateTime1.java rename to src/main/java/com/winterbe/java8/samples/time/LocalDateTime1.java diff --git a/src/com/winterbe/java8/samples/time/LocalTime1.java b/src/main/java/com/winterbe/java8/samples/time/LocalTime1.java similarity index 100% rename from src/com/winterbe/java8/samples/time/LocalTime1.java rename to src/main/java/com/winterbe/java8/samples/time/LocalTime1.java From ee0cefda3fc215cb8896bff4bcb92bc6a5502e61 Mon Sep 17 00:00:00 2001 From: pdvlp Date: Fri, 31 Jul 2015 02:33:06 +0800 Subject: [PATCH 02/11] arrays lambda example --- .../java8/samples/lambda/ArraysLambda.java | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/main/java/com/winterbe/java8/samples/lambda/ArraysLambda.java diff --git a/src/main/java/com/winterbe/java8/samples/lambda/ArraysLambda.java b/src/main/java/com/winterbe/java8/samples/lambda/ArraysLambda.java new file mode 100644 index 00000000..096f6c2b --- /dev/null +++ b/src/main/java/com/winterbe/java8/samples/lambda/ArraysLambda.java @@ -0,0 +1,59 @@ +package com.winterbe.java8.samples.lambda; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +/** + * @author Benjamin Winterberg + */ +public class ArraysLambda { + + public static void main(String[] args) { + List names = Arrays.asList("peter", "anna", "mike", "xenia"); + + usualSort(names); + lambda1Sort(names); + lambda2Sort(names); + lambda3Sort(names); + System.out.println(names); + + names.sort(Collections.reverseOrder()); + System.out.println(names); + + List names2 = Arrays.asList("peter", null, "anna", "mike", "xenia"); + names2.sort(Comparator.nullsLast(String::compareTo)); + System.out.println(names2); + + + List names3 = null; + Optional.ofNullable(names3).ifPresent(list -> list.sort(Comparator.naturalOrder())); + System.out.println(names3); + } + + private static void lambda3Sort(List names) { + Collections.sort(names, (a, b) -> b.compareTo(a)); + } + + private static void lambda2Sort(List names) { + Collections.sort(names, (String a, String b) -> b.compareTo(a)); + } + + private static void lambda1Sort(List names) { + Collections.sort(names, (String a, String b) -> { + return b.compareTo(a); + }); + } + + private static void usualSort(List names) { + Collections.sort(names, new Comparator() { + @Override + public int compare(String a, String b) { + return b.compareTo(a); + } + }); + } + +} \ No newline at end of file From edb5fbac0f895a18f379b2d89e71aca505ec7326 Mon Sep 17 00:00:00 2001 From: pdvlp Date: Fri, 31 Jul 2015 02:33:25 +0800 Subject: [PATCH 03/11] change name --- .../java8/samples/lambda/Lambda1.java | 49 ------------------- 1 file changed, 49 deletions(-) delete mode 100644 src/main/java/com/winterbe/java8/samples/lambda/Lambda1.java diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Lambda1.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda1.java deleted file mode 100644 index 5bb5b658..00000000 --- a/src/main/java/com/winterbe/java8/samples/lambda/Lambda1.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.winterbe.java8.samples.lambda; - -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Optional; - -/** - * @author Benjamin Winterberg - */ -public class Lambda1 { - - public static void main(String[] args) { - List names = Arrays.asList("peter", "anna", "mike", "xenia"); - - Collections.sort(names, new Comparator() { - @Override - public int compare(String a, String b) { - return b.compareTo(a); - } - }); - - Collections.sort(names, (String a, String b) -> { - return b.compareTo(a); - }); - - Collections.sort(names, (String a, String b) -> b.compareTo(a)); - - Collections.sort(names, (a, b) -> b.compareTo(a)); - - System.out.println(names); - - names.sort(Collections.reverseOrder()); - - System.out.println(names); - - List names2 = Arrays.asList("peter", null, "anna", "mike", "xenia"); - names2.sort(Comparator.nullsLast(String::compareTo)); - System.out.println(names2); - - List names3 = null; - - Optional.ofNullable(names3).ifPresent(list -> list.sort(Comparator.naturalOrder())); - - System.out.println(names3); - } - -} \ No newline at end of file From 416e5bf296eb1b45df9cb23bb3f0e8e9696eb98e Mon Sep 17 00:00:00 2001 From: pdvlp Date: Fri, 31 Jul 2015 02:47:49 +0800 Subject: [PATCH 04/11] add tostring --- .../winterbe/java8/samples/lambda/Person.java | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Person.java b/src/main/java/com/winterbe/java8/samples/lambda/Person.java index 800d39fd..92eb3fc6 100644 --- a/src/main/java/com/winterbe/java8/samples/lambda/Person.java +++ b/src/main/java/com/winterbe/java8/samples/lambda/Person.java @@ -1,16 +1,29 @@ package com.winterbe.java8.samples.lambda; /** -* @author Benjamin Winterberg -*/ + * @author Benjamin Winterberg + */ public class Person { - public String firstName; - public String lastName; + public String firstName; + public String lastName; - public Person() {} + public Person() { + } + + public Person(String firstName, String lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("Person [firstName="); + builder.append(firstName); + builder.append(", lastName="); + builder.append(lastName); + builder.append("]"); + return builder.toString(); + } - public Person(String firstName, String lastName) { - this.firstName = firstName; - this.lastName = lastName; - } } \ No newline at end of file From d522c793fdb24b9c290677df42019064a9fed840 Mon Sep 17 00:00:00 2001 From: pdvlp Date: Fri, 31 Jul 2015 02:49:48 +0800 Subject: [PATCH 05/11] change class name. add doc --- .../java8/samples/lambda/Interface1.java | 35 ---------------- .../java8/samples/lambda/InterfaceUsage.java | 42 +++++++++++++++++++ 2 files changed, 42 insertions(+), 35 deletions(-) delete mode 100644 src/main/java/com/winterbe/java8/samples/lambda/Interface1.java create mode 100644 src/main/java/com/winterbe/java8/samples/lambda/InterfaceUsage.java diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Interface1.java b/src/main/java/com/winterbe/java8/samples/lambda/Interface1.java deleted file mode 100644 index 6a87fc10..00000000 --- a/src/main/java/com/winterbe/java8/samples/lambda/Interface1.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.winterbe.java8.samples.lambda; - -/** - * @author Benjamin Winterberg - */ -public class Interface1 { - - interface Formula { - double calculate(int a); - - default double sqrt(int a) { - return Math.sqrt(positive(a)); - } - - static int positive(int a) { - return a > 0 ? a : 0; - } - } - - public static void main(String[] args) { - Formula formula1 = new Formula() { - @Override - public double calculate(int a) { - return sqrt(a * 100); - } - }; - - formula1.calculate(100); // 100.0 - formula1.sqrt(-23); // 0.0 - Formula.positive(-4); // 0.0 - -// Formula formula2 = (a) -> sqrt( a * 100); - } - -} \ No newline at end of file diff --git a/src/main/java/com/winterbe/java8/samples/lambda/InterfaceUsage.java b/src/main/java/com/winterbe/java8/samples/lambda/InterfaceUsage.java new file mode 100644 index 00000000..5d584079 --- /dev/null +++ b/src/main/java/com/winterbe/java8/samples/lambda/InterfaceUsage.java @@ -0,0 +1,42 @@ +package com.winterbe.java8.samples.lambda; + +/** + * @author Benjamin Winterberg + */ +public class InterfaceUsage { + + public static void main(String[] args) { + Formula formula1 = new Formula() { + @Override + public double calculate(int a) { + return sqrt(a * 100); + } + }; + + double result1 = formula1.calculate(100); // 100.0 + double result2 = formula1.sqrt(-23); // 0.0 + int result3 = Formula.positive(-4); // 0.0 + + // Formula formula2 = (a) -> sqrt(a * 100); + + System.out.println(result1); + System.out.println(result2); + System.out.println(result3); + } +} + +/** + * can define function in a interface class; function can be static. + */ +interface Formula { + + double calculate(int a); + + default double sqrt(int a) { + return Math.sqrt(positive(a)); + } + + static int positive(int a) { + return a > 0 ? a : 0; + } +} \ No newline at end of file From 98232ba82e99906a1670fd954a8c64d3124e3d23 Mon Sep 17 00:00:00 2001 From: pdvlp Date: Fri, 31 Jul 2015 02:51:52 +0800 Subject: [PATCH 06/11] change class name. code clear up --- .../java8/samples/lambda/Lambda2.java | 47 ------------------- .../samples/lambda/LambdaToInterface.java | 44 +++++++++++++++++ 2 files changed, 44 insertions(+), 47 deletions(-) delete mode 100644 src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java create mode 100644 src/main/java/com/winterbe/java8/samples/lambda/LambdaToInterface.java diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java deleted file mode 100644 index 71e25ec7..00000000 --- a/src/main/java/com/winterbe/java8/samples/lambda/Lambda2.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.winterbe.java8.samples.lambda; - -/** - * @author Benjamin Winterberg - */ -public class Lambda2 { - - @FunctionalInterface - public static interface Converter { - T convert(F from); - } - - static class Something { - String startsWith(String s) { - return String.valueOf(s.charAt(0)); - } - } - - interface PersonFactory

{ - P create(String firstName, String lastName); - } - - public static void main(String[] args) { - Converter integerConverter1 = (from) -> Integer.valueOf(from); - Integer converted1 = integerConverter1.convert("123"); - System.out.println(converted1); // result: 123 - - - // method reference - - Converter integerConverter2 = Integer::valueOf; - Integer converted2 = integerConverter2.convert("123"); - System.out.println(converted2); // result: 123 - - - Something something = new Something(); - - Converter stringConverter = something::startsWith; - String converted3 = stringConverter.convert("Java"); - System.out.println(converted3); // result J - - // constructor reference - - PersonFactory personFactory = Person::new; - Person person = personFactory.create("Peter", "Parker"); - } -} diff --git a/src/main/java/com/winterbe/java8/samples/lambda/LambdaToInterface.java b/src/main/java/com/winterbe/java8/samples/lambda/LambdaToInterface.java new file mode 100644 index 00000000..69687b09 --- /dev/null +++ b/src/main/java/com/winterbe/java8/samples/lambda/LambdaToInterface.java @@ -0,0 +1,44 @@ +package com.winterbe.java8.samples.lambda; + +/** + * @author Benjamin Winterberg + */ +public class LambdaToInterface { + + @FunctionalInterface + public static interface Converter { + T convert(F from); + } + + static class Something { + String startsWith(String s) { + return String.valueOf(s.charAt(0)); + } + } + + interface PersonFactory

{ + P create(String firstName, String lastName); + } + + public static void main(String[] args) { + Converter integerConverter1 = (from) -> Integer.valueOf(from); + Integer converted1 = integerConverter1.convert("123"); + System.out.println(converted1); // result: 123 + + // method reference + Converter integerConverter2 = Integer::valueOf; + Integer converted2 = integerConverter2.convert("123"); + System.out.println(converted2); // result: 123 + + Something something = new Something(); + + Converter stringConverter = something::startsWith; + String converted3 = stringConverter.convert("Java"); + System.out.println(converted3); // result J + + // constructor reference + PersonFactory personFactory = Person::new; + Person person = personFactory.create("Peter", "Parker"); + System.out.println(person); // return Person [firstName=Peter,lastName=Parker] + } +} From 335d5c5be977a264ce43fb9a2bc2d12df52a8769 Mon Sep 17 00:00:00 2001 From: pdvlp Date: Fri, 31 Jul 2015 02:53:27 +0800 Subject: [PATCH 07/11] be affected --- .../java8/samples/lambda/Lambda3.java | 85 +++++++++---------- .../java8/samples/lambda/Lambda4.java | 6 +- 2 files changed, 44 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java index 967f3493..4fa87e48 100644 --- a/src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java +++ b/src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java @@ -16,69 +16,66 @@ */ public class Lambda3 { - @FunctionalInterface - interface Fun { - void foo(); - } + @FunctionalInterface + interface Fun { + void foo(); + } - public static void main(String[] args) throws Exception { + public static void main(String[] args) throws Exception { - // Predicates + // Predicates + Predicate predicate = (s) -> s.length() > 0; - Predicate predicate = (s) -> s.length() > 0; + predicate.test("foo"); // true + predicate.negate().test("foo"); // false - predicate.test("foo"); // true - predicate.negate().test("foo"); // false + Predicate nonNull = Objects::nonNull; + nonNull.test(null); - Predicate nonNull = Objects::nonNull; - Predicate isNull = Objects::isNull; + Predicate isNull = Objects::isNull; + isNull.test(null); - Predicate isEmpty = String::isEmpty; - Predicate isNotEmpty = isEmpty.negate(); + Predicate isEmpty = String::isEmpty; + isEmpty.test(""); + Predicate isNotEmpty = isEmpty.negate(); + isNotEmpty.test(""); + + // Functions + Function toInteger = Integer::valueOf; + Function backToString = toInteger.andThen(String::valueOf); - // Functions + backToString.apply("123"); // "123" - Function toInteger = Integer::valueOf; - Function backToString = toInteger.andThen(String::valueOf); + // Suppliers - backToString.apply("123"); // "123" + Supplier personSupplier = Person::new; + personSupplier.get(); // new Person + // Consumers - // Suppliers + Consumer greeter = (p) -> System.out.println("Hello, " + p.firstName); + greeter.accept(new Person("Luke", "Skywalker")); - Supplier personSupplier = Person::new; - personSupplier.get(); // new Person + // Comparators + Comparator comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName); - // Consumers + Person p1 = new Person("John", "Doe"); + Person p2 = new Person("Alice", "Wonderland"); - Consumer greeter = (p) -> System.out.println("Hello, " + p.firstName); - greeter.accept(new Person("Luke", "Skywalker")); + comparator.compare(p1, p2); // > 0 + comparator.reversed().compare(p1, p2); // < 0 + // Runnables + Runnable runnable = () -> System.out.println(UUID.randomUUID()); + runnable.run(); - // Comparators + // Callables - Comparator comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName); - - Person p1 = new Person("John", "Doe"); - Person p2 = new Person("Alice", "Wonderland"); - - comparator.compare(p1, p2); // > 0 - comparator.reversed().compare(p1, p2); // < 0 - - - // Runnables - - Runnable runnable = () -> System.out.println(UUID.randomUUID()); - runnable.run(); - - - // Callables - - Callable callable = UUID::randomUUID; - callable.call(); - } + Callable callable = UUID::randomUUID; + callable.call(); + } } diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java index e14b4b29..c1783b7b 100644 --- a/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java +++ b/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java @@ -12,19 +12,19 @@ public class Lambda4 { void testScopes() { int num = 1; - Lambda2.Converter stringConverter = + LambdaToInterface.Converter stringConverter = (from) -> String.valueOf(from + num); String convert = stringConverter.convert(2); System.out.println(convert); // 3 - Lambda2.Converter stringConverter2 = (from) -> { + LambdaToInterface.Converter stringConverter2 = (from) -> { outerNum = 13; return String.valueOf(from); }; String[] array = new String[1]; - Lambda2.Converter stringConverter3 = (from) -> { + LambdaToInterface.Converter stringConverter3 = (from) -> { array[0] = "Hi there"; return String.valueOf(from); }; From d76bff564303a9a4cbe8beba55db7e3aec0289e7 Mon Sep 17 00:00:00 2001 From: rbible Date: Fri, 31 Jul 2015 14:40:48 +0800 Subject: [PATCH 08/11] add code --- .../java/com/winterbe/java8/samples/lambda/Lambda4.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java index c1783b7b..34f9d3e4 100644 --- a/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java +++ b/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java @@ -11,18 +11,22 @@ public class Lambda4 { void testScopes() { int num = 1; - LambdaToInterface.Converter stringConverter = (from) -> String.valueOf(from + num); String convert = stringConverter.convert(2); System.out.println(convert); // 3 - LambdaToInterface.Converter stringConverter2 = (from) -> { + + LambdaToInterface.Converter stringConverter2 = (from) -> { outerNum = 13; return String.valueOf(from); }; + stringConverter2.convert(23); + System.out.println(outerNum); + + String[] array = new String[1]; LambdaToInterface.Converter stringConverter3 = (from) -> { array[0] = "Hi there"; From 59b8325b417738430520026f85e3cb3d81f61d52 Mon Sep 17 00:00:00 2001 From: rbible Date: Sat, 1 Aug 2015 22:35:04 +0800 Subject: [PATCH 09/11] change class name --- .../{Lambda3.java => CommonFunctions.java} | 161 +++++++++--------- 1 file changed, 80 insertions(+), 81 deletions(-) rename src/main/java/com/winterbe/java8/samples/lambda/{Lambda3.java => CommonFunctions.java} (94%) diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java b/src/main/java/com/winterbe/java8/samples/lambda/CommonFunctions.java similarity index 94% rename from src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java rename to src/main/java/com/winterbe/java8/samples/lambda/CommonFunctions.java index 4fa87e48..843f33fb 100644 --- a/src/main/java/com/winterbe/java8/samples/lambda/Lambda3.java +++ b/src/main/java/com/winterbe/java8/samples/lambda/CommonFunctions.java @@ -1,81 +1,80 @@ -package com.winterbe.java8.samples.lambda; - -import java.util.Comparator; -import java.util.Objects; -import java.util.UUID; -import java.util.concurrent.Callable; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.Supplier; - -/** - * Common standard functions from the Java API. - * - * @author Benjamin Winterberg - */ -public class Lambda3 { - - @FunctionalInterface - interface Fun { - void foo(); - } - - public static void main(String[] args) throws Exception { - - // Predicates - Predicate predicate = (s) -> s.length() > 0; - - predicate.test("foo"); // true - predicate.negate().test("foo"); // false - - Predicate nonNull = Objects::nonNull; - nonNull.test(null); - - Predicate isNull = Objects::isNull; - isNull.test(null); - - Predicate isEmpty = String::isEmpty; - isEmpty.test(""); - - Predicate isNotEmpty = isEmpty.negate(); - isNotEmpty.test(""); - - // Functions - Function toInteger = Integer::valueOf; - Function backToString = toInteger.andThen(String::valueOf); - - backToString.apply("123"); // "123" - - // Suppliers - - Supplier personSupplier = Person::new; - personSupplier.get(); // new Person - - // Consumers - - Consumer greeter = (p) -> System.out.println("Hello, " + p.firstName); - greeter.accept(new Person("Luke", "Skywalker")); - - // Comparators - - Comparator comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName); - - Person p1 = new Person("John", "Doe"); - Person p2 = new Person("Alice", "Wonderland"); - - comparator.compare(p1, p2); // > 0 - comparator.reversed().compare(p1, p2); // < 0 - - // Runnables - - Runnable runnable = () -> System.out.println(UUID.randomUUID()); - runnable.run(); - - // Callables - - Callable callable = UUID::randomUUID; - callable.call(); - } - -} +package com.winterbe.java8.samples.lambda; + +import java.util.Comparator; +import java.util.Objects; +import java.util.UUID; +import java.util.concurrent.Callable; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.Supplier; + +/** + * Common standard functions from the Java API. + * + * @author Benjamin Winterberg + */ +public class CommonFunctions { + + @FunctionalInterface + interface Fun { + void foo(); + } + + public static void main(String[] args) throws Exception { + + // Predicates + Predicate predicate = (s) -> s.length() > 0; + + predicate.test("foo"); // true + predicate.negate().test("foo"); // false + + Predicate nonNull = Objects::nonNull; + nonNull.test(null); + + Predicate isNull = Objects::isNull; + isNull.test(null); + + Predicate isEmpty = String::isEmpty; + isEmpty.test(""); + + Predicate isNotEmpty = isEmpty.negate(); + isNotEmpty.test(""); + + // Functions + Function toInteger = Integer::valueOf; + Function backToString = toInteger.andThen(String::valueOf); + + backToString.apply("123"); // "123" + + // Suppliers + + Supplier personSupplier = Person::new; + personSupplier.get(); // new Person + + // Consumers + + Consumer greeter = (p) -> System.out.println("Hello, " + p.firstName); + greeter.accept(new Person("Luke", "Skywalker")); + + // Comparators + + Comparator comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName); + + Person p1 = new Person("John", "Doe"); + Person p2 = new Person("Alice", "Wonderland"); + + comparator.compare(p1, p2); // > 0 + comparator.reversed().compare(p1, p2); // < 0 + + // Runnables + + Runnable runnable = () -> System.out.println(UUID.randomUUID()); + runnable.run(); + + // Callables + + Callable callable = UUID::randomUUID; + callable.call(); + } +} From 7ddd744a935e11f866df6fead1638a84f0904aaf Mon Sep 17 00:00:00 2001 From: rbible Date: Sat, 1 Aug 2015 22:52:17 +0800 Subject: [PATCH 10/11] functionInterface --- .../lambda/{LambdaToInterface.java => FunctionInterface.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/main/java/com/winterbe/java8/samples/lambda/{LambdaToInterface.java => FunctionInterface.java} (97%) diff --git a/src/main/java/com/winterbe/java8/samples/lambda/LambdaToInterface.java b/src/main/java/com/winterbe/java8/samples/lambda/FunctionInterface.java similarity index 97% rename from src/main/java/com/winterbe/java8/samples/lambda/LambdaToInterface.java rename to src/main/java/com/winterbe/java8/samples/lambda/FunctionInterface.java index 69687b09..ce595f94 100644 --- a/src/main/java/com/winterbe/java8/samples/lambda/LambdaToInterface.java +++ b/src/main/java/com/winterbe/java8/samples/lambda/FunctionInterface.java @@ -3,7 +3,7 @@ /** * @author Benjamin Winterberg */ -public class LambdaToInterface { +public class FunctionInterface { @FunctionalInterface public static interface Converter { From 0034fff8622ceb5172d9021da03b7734ef869d8f Mon Sep 17 00:00:00 2001 From: rbible Date: Sat, 1 Aug 2015 22:53:26 +0800 Subject: [PATCH 11/11] InnerFunctionInterface --- .../lambda/InnerFunctionInterface.java | 41 +++++++++++++++++ .../java8/samples/lambda/Lambda4.java | 45 ------------------- 2 files changed, 41 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/winterbe/java8/samples/lambda/InnerFunctionInterface.java delete mode 100644 src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java diff --git a/src/main/java/com/winterbe/java8/samples/lambda/InnerFunctionInterface.java b/src/main/java/com/winterbe/java8/samples/lambda/InnerFunctionInterface.java new file mode 100644 index 00000000..04f025f6 --- /dev/null +++ b/src/main/java/com/winterbe/java8/samples/lambda/InnerFunctionInterface.java @@ -0,0 +1,41 @@ +package com.winterbe.java8.samples.lambda; + +/** + * @author Benjamin Winterberg + */ +public class InnerFunctionInterface { + + static int outerStaticNum; + + int outerNum; + + void testScopes() { + int num = 1; + FunctionInterface.Converter stringConverter = (from) -> String.valueOf(from + num); + + String convert = stringConverter.convert(2); + System.out.println(convert); // 3 + + FunctionInterface.Converter stringConverter2 = (from) -> { + outerNum = 13; + return String.valueOf(from); + }; + + stringConverter2.convert(23); + System.out.println(outerNum);// 13 + + String[] array = new String[1]; + FunctionInterface.Converter stringConverter3 = (from) -> { + array[0] = "Hi there"; + return String.valueOf(from); + }; + + stringConverter3.convert(23); + System.out.println(array[0]);// Hi there + } + + public static void main(String[] args) { + new InnerFunctionInterface().testScopes(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java b/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java deleted file mode 100644 index 34f9d3e4..00000000 --- a/src/main/java/com/winterbe/java8/samples/lambda/Lambda4.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.winterbe.java8.samples.lambda; - -/** - * @author Benjamin Winterberg - */ -public class Lambda4 { - - static int outerStaticNum; - - int outerNum; - - void testScopes() { - int num = 1; - LambdaToInterface.Converter stringConverter = - (from) -> String.valueOf(from + num); - - String convert = stringConverter.convert(2); - System.out.println(convert); // 3 - - - LambdaToInterface.Converter stringConverter2 = (from) -> { - outerNum = 13; - return String.valueOf(from); - }; - - stringConverter2.convert(23); - System.out.println(outerNum); - - - String[] array = new String[1]; - LambdaToInterface.Converter stringConverter3 = (from) -> { - array[0] = "Hi there"; - return String.valueOf(from); - }; - - stringConverter3.convert(23); - - System.out.println(array[0]); - } - - public static void main(String[] args) { - new Lambda4().testScopes(); - } - -} \ No newline at end of file