1. 泛型又称参数化类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题
  2. 在类声明或实例化时只要指定好需要的具体的类型即可。
  3. Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁、健壮
  4. 泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。

    理解:

    ```java package test;

public class Main { public static void main(String[] args) {

  1. //注意,特别强调: E具体的数据类型在定义Person对象的时候指定,即在编译期间,就确定E是什么类型
  2. Person<String> person = new Person<String>("WTY2002");
  3. person.show(); //String
  4. /*
  5. 你可以这样理解,上面的Person类
  6. class Person {
  7. String s ;//E表示 s的数据类型, 该数据类型在定义Person对象的时候指定,即在编译期间,就确定E是什么类型
  8. public Person(String s) {//E也可以是参数类型
  9. this.s = s;
  10. }
  11. public String f() {//返回类型使用E
  12. return s;
  13. }
  14. }
  15. */
  16. Person<Integer> person2 = new Person<Integer>(100);
  17. person2.show();//Integer
  18. /*
  19. class Person {
  20. Integer s ;//E表示 s的数据类型, 该数据类型在定义Person对象的时候指定,即在编译期间,就确定E是什么类型
  21. public Person(Integer s) {//E也可以是参数类型
  22. this.s = s;
  23. }
  24. public Integer f() {//返回类型使用E
  25. return s;
  26. }
  27. }
  28. */
  29. }

}

//泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型, // 或者是某个方法的返回值的类型,或者是参数类型

class Person { E s ;//E表示 s的数据类型, 该数据类型在定义Person对象的时候指定,即在编译期间,就确定E是什么类型 public Person(E s) {//E也可以是参数类型 this.s = s; }

  1. public E f() {//返回类型使用E
  2. return s;
  3. }
  4. public void show() {
  5. System.out.println(s.getClass());//显示s的运行类型
  6. }

} ``` image.png