From 1036e91f92814219003ddd73ff2229de06e86de1 Mon Sep 17 00:00:00 2001 From: sltap Date: Mon, 22 Aug 2022 10:00:40 -0400 Subject: [PATCH 1/2] 14.6 --- .../hcsp/polymorphism/NameCollector.java | 36 +++++++++---------- .../com/github/hcsp/polymorphism/User.java | 15 ++++++++ 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/github/hcsp/polymorphism/NameCollector.java b/src/main/java/com/github/hcsp/polymorphism/NameCollector.java index da7f2c6..008d53b 100644 --- a/src/main/java/com/github/hcsp/polymorphism/NameCollector.java +++ b/src/main/java/com/github/hcsp/polymorphism/NameCollector.java @@ -1,18 +1,18 @@ -package com.github.hcsp.polymorphism; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Consumer; - -public class NameCollector implements Consumer { - private final List names = new ArrayList<>(); - - @Override - public void accept(User user) { - names.add(user.getName()); - } - - public List getNames() { - return names; - } -} +//package com.github.hcsp.polymorphism; +// +//import java.util.ArrayList; +//import java.util.List; +//import java.util.function.Consumer; +// +//public class NameCollector implements Consumer { +// private final List names = new ArrayList<>(); +// +// @Override +// public void accept(User user) { +// names.add(user.getName()); +// } +// +// public List getNames() { +// return names; +// } +//} diff --git a/src/main/java/com/github/hcsp/polymorphism/User.java b/src/main/java/com/github/hcsp/polymorphism/User.java index 78d927d..f636b74 100644 --- a/src/main/java/com/github/hcsp/polymorphism/User.java +++ b/src/main/java/com/github/hcsp/polymorphism/User.java @@ -1,7 +1,9 @@ package com.github.hcsp.polymorphism; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.function.Consumer; public class User { /** 用户ID,数据库主键,全局唯一 */ @@ -35,4 +37,17 @@ public static void main(String[] args) { List users = Arrays.asList(new User(1, "a"), new User(2, "b")); System.out.println(collectNames(users)); } + private static class NameCollector implements Consumer { + private final List names = new ArrayList<>(); + + @Override + public void accept(User user) { + names.add(user.getName()); + } + + public List getNames() { + return names; + } + } + } From bba6f7b3d2b4d5ce007628ad70110ec11a10717b Mon Sep 17 00:00:00 2001 From: sltap Date: Mon, 22 Aug 2022 10:23:50 -0400 Subject: [PATCH 2/2] 14.6.2 --- .../com/github/hcsp/polymorphism/User.java | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/github/hcsp/polymorphism/User.java b/src/main/java/com/github/hcsp/polymorphism/User.java index f636b74..69aecdf 100644 --- a/src/main/java/com/github/hcsp/polymorphism/User.java +++ b/src/main/java/com/github/hcsp/polymorphism/User.java @@ -28,26 +28,33 @@ public String getName() { // 这里使用了一个NameCollector类,请尝试将它改写成匿名内部类 // 使得代码更加集中,更加容易阅读 public static List collectNames(List users) { - NameCollector collector = new NameCollector(); - users.forEach(collector); - return collector.getNames(); +// NameCollector collector = new NameCollector(); +// users.forEach(collector); +// return collector.getNames(); + List names=new ArrayList<>(); + users.forEach(new Consumer(){ + public void accept(User user){ + names.add(user.name); + } + }); + return names; } public static void main(String[] args) { List users = Arrays.asList(new User(1, "a"), new User(2, "b")); System.out.println(collectNames(users)); } - private static class NameCollector implements Consumer { - private final List names = new ArrayList<>(); - - @Override - public void accept(User user) { - names.add(user.getName()); - } - - public List getNames() { - return names; - } - } +// private static class NameCollector implements Consumer { +// private final List names = new ArrayList<>(); +// +// @Override +// public void accept(User user) { +// names.add(user.getName()); +// } +// +// public List getNames() { +// return names; +// } +// } }