From 1e71372f1e12f378db5f776a1841439049a8f6f1 Mon Sep 17 00:00:00 2001
From: BTP <842297171@qq.com>
Date: Sat, 27 May 2017 13:00:17 +0800
Subject: [PATCH 01/10] Create README.md
---
README.md | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 README.md
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c9ccf17
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# ThingkingInJava
+study of Thinking of Java
+学习《Thinking in Java》的代码
From 64f5ee021b02a17ff835f3f49b0197d5829eb679 Mon Sep 17 00:00:00 2001
From: BTP <842297171@qq.com>
Date: Sat, 27 May 2017 13:01:09 +0800
Subject: [PATCH 02/10] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c9ccf17..deacee7 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
# ThingkingInJava
-study of Thinking of Java
+study of Thinking of Java
学习《Thinking in Java》的代码
From 49072358f67e7e1891146ac259175909ddd4aa89 Mon Sep 17 00:00:00 2001
From: BTP <842297171@qq.com>
Date: Sat, 27 May 2017 13:03:09 +0800
Subject: [PATCH 03/10] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index deacee7..dffd08d 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
-# ThingkingInJava
+# Thinking In Java
study of Thinking of Java
学习《Thinking in Java》的代码
From 4cb81ada69906ea4f8185c57fc6e68f898d05306 Mon Sep 17 00:00:00 2001
From: BTP <842297171@qq.com>
Date: Sat, 27 May 2017 13:04:28 +0800
Subject: [PATCH 04/10] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index dffd08d..44d7e31 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
# Thinking In Java
-study of Thinking of Java
+study of 《Thinking in Java》
学习《Thinking in Java》的代码
From 75165b3d746a5888cd2d1626914235b32f31caed Mon Sep 17 00:00:00 2001
From: BTP <842297171@qq.com>
Date: Sat, 27 May 2017 15:54:38 +0800
Subject: [PATCH 05/10] 170537-Generic (#2)
170527
---
src/btp/oneP/GenericErase.java | 22 ++++++++++++++++++++++
src/btp/oneP/GenericEvaluate.java | 29 +++++++++++++++++++++++++++++
src/btp/oneP/ListCopy.java | 24 ++++++++++++++++++++++++
3 files changed, 75 insertions(+)
create mode 100644 src/btp/oneP/GenericErase.java
create mode 100644 src/btp/oneP/GenericEvaluate.java
create mode 100644 src/btp/oneP/ListCopy.java
diff --git a/src/btp/oneP/GenericErase.java b/src/btp/oneP/GenericErase.java
new file mode 100644
index 0000000..ac37850
--- /dev/null
+++ b/src/btp/oneP/GenericErase.java
@@ -0,0 +1,22 @@
+package btp.oneP;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+
+public class GenericErase {
+
+ public static void main(String[] args) {
+ ArrayList sl = new ArrayList();
+ sl.add("Magic");
+ Class extends ArrayList> clazz = sl.getClass();
+ try{
+ Method method = clazz.getMethod("add", Object.class);
+ method.invoke(sl, 1);
+ System.out.println(sl);
+ //out:[Magic, 1]
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/src/btp/oneP/GenericEvaluate.java b/src/btp/oneP/GenericEvaluate.java
new file mode 100644
index 0000000..caa27e1
--- /dev/null
+++ b/src/btp/oneP/GenericEvaluate.java
@@ -0,0 +1,29 @@
+package btp.oneP;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class GenericEvaluate {
+
+ public static void main(String[] args) {
+ Collection> c1 = new ArrayList>();
+ Collection> c2 = c1;
+ //Collection> c3 = c1;
+ Collection extends Pair> c4 = c1;
+
+ Collection> c5 = new ArrayList>();
+ //Collection> c6 = c5;
+ Collection> c7 = c5;
+ //Collection> c8 = c5;
+ Collection extends Pair> c9 = c5;
+ }
+
+}
+
+class Pair{
+
+}
+
+class SubTypeOfPair extends Pair{
+
+}
diff --git a/src/btp/oneP/ListCopy.java b/src/btp/oneP/ListCopy.java
new file mode 100644
index 0000000..9c4cae4
--- /dev/null
+++ b/src/btp/oneP/ListCopy.java
@@ -0,0 +1,24 @@
+package btp.oneP;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class ListCopy {
+
+ public static void copy(List extends T> src,List super T> dest){
+ for(T t:src){
+ dest.add(t);
+ }
+ }
+
+ public static void main(String[] args) {
+ List sList = new ArrayList(Arrays.asList(new String[]{"hehe","xixi","caca"}));
+ List