From aa3418b879a6c98e470ccae21ffed2ecc4742192 Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Sun, 27 Jan 2019 17:47:01 +0800 Subject: [PATCH] =?UTF-8?q?finsh=20=E6=B3=9B=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blogs/Android/热修复.md | 4 +- blogs/泛型.md | 328 +++++++++++++++++++++++++++++++++++++++- images/泛型.png | Bin 0 -> 37840 bytes 3 files changed, 330 insertions(+), 2 deletions(-) create mode 100644 images/泛型.png diff --git a/blogs/Android/热修复.md b/blogs/Android/热修复.md index bb0a60e..de1390b 100644 --- a/blogs/Android/热修复.md +++ b/blogs/Android/热修复.md @@ -263,4 +263,6 @@ final class DexPathList { [https://github.com/GitLqr/HotFixDemo](https://github.com/GitLqr/HotFixDemo) [网易云课堂]( -https://study.163.com/course/courseLearn.htm?courseId=1208968811#/learn/live?lessonId=1278455246&courseId=1208968811) \ No newline at end of file +https://study.163.com/course/courseLearn.htm?courseId=1208968811#/learn/live?lessonId=1278455246&courseId=1208968811) + +[热修复——Tinker 的集成与使用](https://mp.weixin.qq.com/s/xpB_ipYv9cN8k8fdr_7wCw) \ No newline at end of file diff --git a/blogs/泛型.md b/blogs/泛型.md index d268888..d4465af 100644 --- a/blogs/泛型.md +++ b/blogs/泛型.md @@ -5,5 +5,331 @@ #### 目录 1. 思维导图 -2. +2. 概述 +3. 基本使用 + - 泛型类 + - 泛型接口 + - 泛型方法 +4. 通配符 +5. 参考 + +#### 思维导图 + +![](https://i.loli.net/2019/01/27/5c4d7dd943a0d.png) + +#### 概述 + +泛型即参数化类型,也就是说,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口、方法中,分别被称为泛型类、泛型接口、泛型方法。但是需要注意的是,这种参数化类型之存在于编译阶段。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦除,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法,也就是说,泛型信息不会进入到运行期。 + +#### 基本使用 + +泛型有三种使用方式:泛型类、泛型接口、泛型方法。 + +##### 泛型类 + +泛型类最常用于各种容器类中,如:List、Set、Map。 + +```java +public class Genericity { + + private T t; + + public Genericity(T t) { + this.t = t; + } + + public T getT() { + return t; + } + + public void setT(T t) { + this.t = t; + } +} +``` + +```java +public class Test { + public static void main(String[] args) { + //传入泛型参数 + Genericity genericity = new Genericity<>("Demo"); + System.out.println(genericity.getT()); + Genericity genericity1 = new Genericity<>(23333); + System.out.println(genericity1.getT()); + + //不传入泛型参数 + Genericity genericity2 = new Genericity("Demo"); + System.out.println(genericity2.getT()); + Genericity genericity3 = new Genericity(23333); + System.out.println(genericity3.getT()); + } +} +输出: +Demo +23333 +Demo +23333 +``` + +如果传入了泛型参数,那么编译器在传入实参的时候会进行类型检查,此时泛型才会发挥它真正的意义;如果不传入泛型参数,那么就可以传入任意类型。 + +注意: + +1. 泛型的类型参数只能是类类型,不能是简单类型,如果是基本类型必须使用其包装类型。 +2. 不能对泛型类型使用 instanceof 操作,原因在于泛型擦除。 + +##### 泛型接口 + +泛型接口与泛型类的定义及使用基本一致,泛型接口常用在各种类的生产器中,如 AsyncTask 等。 + +```java +public interface Genericity { + public T show(); +} +``` + +```java +public class GenericityImpl implements Genericity { + @Override + public T show() { + return null; + } +} +``` + +**如果未传入泛型实参,那么就得把泛型的声明延伸到类中。** + +如果传入了类型实参,那么就不需要在类上增加类型说明了: + +```java +public class GenericityImpl implements Genericity { + @Override + public String show() { + return null; + } +} +``` + +##### 泛型方法 + +首先纠正我一个多年的理解错误: + +```java +public class Genericity { + + private T t; + + public Genericity(T t) { + this.t = t; + } + + //这不是一个泛型方法 + public T getT() { + return t; + } + + public void setT(T t) { + this.t = t; + } +} +``` + +上诉泛型类的 getT 方法并不是一个泛型方法,它的返回值是在声明泛型类已经声明过的泛型。 + +**泛型类,是在实例化类的时候指明泛型的具体类型;** + +**泛型方法,是在调用方法的时候指明泛型的具体类型;** + +下面是一个简单的泛型方法: + +```java +public class Genericity { + public String show(T t) { + return t.toString(); + } +} + +//使用 +public static void main(String[] args) { + Genericity genericity = new Genericity(); + System.out.println(genericity.show(2333)); + System.out.println(genericity.show("Demo")); +} +``` + +只有声明了 \ 的方法才是泛型方法,所以可以在方法中使用泛型类型 T。 + +当然,泛型参数也可以指定多个: + +```java +public class Genericity { + public String show(T t, K k) { + return t.toString() + k.toString(); + } +} +//使用: +public static void main(String[] args) { + Genericity genericity = new Genericity(); + System.out.println(genericity.show(2333, "Demo")); +} +``` + +这都是一些简单的泛型方法,来看一下几种比较容易搞错的例子: + +1. 泛型类中包含泛型方法: + + ```java + public class Genericity { + private T t; + + public Genericity(T t) { + this.t = t; + } + + public void show(){ + System.out.println(t.toString()); + } + + //泛型方法 + public void show(T t){ + System.out.println(t.toString()); + } + } + ``` + + 泛型中的 T 会把类的类型参数 T 隐藏,所以调用时其实不是一个对象: + + ```java + public static void main(String[] args) { + Genericity genericity = new Genericity<>(2333); + genericity.show(); + genericity.show("Demo"); + } + ``` + +2. 泛型与可变长参数 + + ```java + //泛型方法 + public void show(T... ts) { + for (T t : ts) { + System.out.println(t.toString()); + } + } + genericity.show("Demo", 2333, 23.22); + ``` + +3. 静态泛型方法 + + ```java + public class Genericity { + + //静态泛型方法 + public static void show(T t) { + + } + //以下方法编译器报错: + public static void show(T t) { + + } + } + ``` + + 静态方法无法访问类上定义的泛型,所以只能把泛型定义在方法上。 + +#### 通配符 + +先看一个例子: + +```java +public class Genericity { + + private T t; + + public Genericity(T t) { + this.t = t; + } + + public T getT() { + return t; + } + + public void setT(T t) { + this.t = t; + } +} +``` + +```java +public class Test { + public static void main(String[] args) { + Genericity numberGenericity = new Genericity<>(2333); + + Genericity integerGenericity = new Genericity<>(1222); + + show(numberGenericity); + //编译报错 + //show(integerGenericity); + } + + private static void show(Genericity genericity) { + System.out.println(genericity.getT()); + } +} +``` + +无法给型参为 Genericity\ 的方法传入 Genericity\ 实参,即使 Integer 是 Number 的子类。 + +**同一个泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。** + +这时候可以用 ? 类型通配符来解决: + +```java +private static void show(Genericity genericity) { + System.out.println(genericity.getT()); +} +``` + +**注意:**这里的 ? 代替具体的类型实参,而不是类型型参! + +由此,又进入了上界通配符和下界通配符。 + +##### 上通配符: + +```java +private static void show(Genericity genericity) { + System.out.println(genericity.getT()); +} +``` + +表示传入的实参必须是 Number 或 Number 的子类。 + +##### 下界通配符: + +```java +private static void show(Genericity genericity) { + System.out.println(genericity.getT()); +} +``` + +表示传入的实参必须是 Integer 或者其父类。 + +但是需要注意的是,泛型的上下边界添加,必须与泛型的声明在一起: + +```java +//错误声明 +private T show(Genericity genericity) { + +} +//正确声明 +private T show(Genericity genericity) { + return genericity.getT(); +} +``` + +**泛型的上下边界添加,必须与泛型的声明在一起.** + +#### 参考 + +[java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一](https://blog.csdn.net/s10461/article/details/53941091) diff --git a/images/泛型.png b/images/泛型.png new file mode 100644 index 0000000000000000000000000000000000000000..701a65e93641c9afc5742840d2d32c4f066973fe GIT binary patch literal 37840 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 Hxvh^x`)1}< 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 YjGCal#V;J$2