package com.wq.generic泛型.generic;
public class generic03 {
public static void main(String[] args) {
//1. 泛型又称为参数化类型 jdk5.0 出现的新特性 解决数据类型的安全性问题
//2. 在类声明或实例化时只要制定好需要的具体的类即可
//3. java 泛型可以保证 如果程序在编译时没有发出警告 运行时不会产生classcastexception异常
// 同时代码更加简洁健壮
//4. 泛型的作用是 可以在类声明时 通过一个标识表示类中某个属性的类型 或者是某个方法的返回值
// 类型 或者是参数类型 (以下举例)
person<String> stringperson = new person<String>("king");
stringperson.show(); // class java.lang.String
// 这里相当于 将 person 中的 E 类型指定为 String 类型
/* 相当于以下现象:
class person { //E 表示 s 的数据类型 该数据类型是在定义 person 对象的时候制定 即
// 在编译期间 就是确定 E 是什么类型
String name;
public person(String name) {// E也可以是参数类型
this.name = name;
}
public String getName() { //返回类型也可以使用 E
return name;
}
public String info (){ // 方法返回类型 也可以是 E
return name;
}
public void setName(String name) {
this.name = name;
}
}
*/
}
}
class person<E> { //E 表示 s 的数据类型 该数据类型是在定义 person 对象的时候制定 即
// 在编译期间 就是确定 E 是什么类型
E name;
public person(E name) {// E也可以是参数类型
this.name = name;
}
public E getName() { //返回类型也可以使用 E
return name;
}
public E info (){ // 方法返回类型 也可以是 E
return name;
}
public void setName(E name) {
this.name = name;
}
public void show (){
System.out.println(name.getClass());// 显示name 的运行类型
}
}
class java.lang.String