From ef85502a82ade91774740f0def8ed595afd2fe31 Mon Sep 17 00:00:00 2001 From: Asif Iqbal Date: Thu, 15 Sep 2016 21:27:08 -0400 Subject: [PATCH 1/3] Adding call to getTitle() inside TaskExtractor interface --- 02-lambdas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/02-lambdas.md b/02-lambdas.md index b918e45..462fb77 100644 --- a/02-lambdas.md +++ b/02-lambdas.md @@ -534,7 +534,7 @@ public class Exercise_Lambdas { interface TaskExtractor extends Function { static TaskExtractor identityOp() { - return t -> t; + return t -> t.getTitle(); } } ``` From 1385924cc3def3a2e41def3f867752f4c15721bb Mon Sep 17 00:00:00 2001 From: Asif Iqbal Date: Thu, 15 Sep 2016 21:37:48 -0400 Subject: [PATCH 2/3] Filling in potentially missing piece of code --- 02-lambdas.md | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/02-lambdas.md b/02-lambdas.md index 462fb77..bb1df41 100644 --- a/02-lambdas.md +++ b/02-lambdas.md @@ -492,14 +492,27 @@ public class Exercise_Lambdas { Using method reference for extractor ```java -public static void main(String[] args) { - List tasks = getTasks(); - List titles = filterAndExtract(tasks, task -> task.getType() == TaskType.READING, Task::getTitle); - titles.forEach(System.out::println); - List createdOnDates = filterAndExtract(tasks, task -> task.getType() == TaskType.READING, Task::getCreatedOn); - createdOnDates.forEach(System.out::println); - List filteredTasks = filterAndExtract(tasks, task -> task.getType() == TaskType.READING, Function.identity()); - filteredTasks.forEach(System.out::println); +public class Exercise_Lambdas { + + public static void main(String[] args) { + List tasks = getTasks(); + List titles = filterAndExtract(tasks, task -> task.getType() == TaskType.READING, Task::getTitle); + titles.forEach(System.out::println); + List createdOnDates = filterAndExtract(tasks, task -> task.getType() == TaskType.READING, Task::getCreatedOn); + createdOnDates.forEach(System.out::println); + List filteredTasks = filterAndExtract(tasks, task -> task.getType() == TaskType.READING, Function.identity()); + filteredTasks.forEach(System.out::println); + } + + public static List filterAndExtract(List tasks, Predicate filterTasks, Function extractor) { + List readingTitles = new ArrayList<>(); + for (Task task : tasks) { + if (filterTasks.test(task)) { + readingTitles.add(extractor.apply(task)); + } + } + return readingTitles; + } } ``` From e5a64f1fbc258fc202224ba6842d287f5a5418cc Mon Sep 17 00:00:00 2001 From: Asif Iqbal Date: Thu, 15 Sep 2016 21:58:36 -0400 Subject: [PATCH 3/3] Reverting one of the previous changes, was a mistake on my part --- 02-lambdas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/02-lambdas.md b/02-lambdas.md index bb1df41..e0a523d 100644 --- a/02-lambdas.md +++ b/02-lambdas.md @@ -547,7 +547,7 @@ public class Exercise_Lambdas { interface TaskExtractor extends Function { static TaskExtractor identityOp() { - return t -> t.getTitle(); + return t -> t; } } ```