泛型类定义的格式:
格式:修饰符 class 类名<类型>{}
范例:public class Mayikt<T>{}
此处T可以随便写为任意标识,T、E、K、V 等形式的参数常用于表示泛型
示例代码:
package com.collection.Demo05;/*** 问题: 学号可能是String or Integer类型* 解决1:使用Object类型——但不推荐(需要类型判断if (Object instanceof String) or Integer)* 解决2:泛型类——格式:public class Mayikt<T>{}*/
public class Student {
// private String stuNumber;
// private Integer stuNumber;private Object stuNumber;// public String getStuNumber() {
// return stuNumber;
// }
//
// public void setStuNumber(String stuNumber) {
// this.stuNumber = stuNumber;
// }// public Integer getStuNumber() {
// return stuNumber;
// }
//
// public void setStuNumber(Integer stuNumber) {
// this.stuNumber = stuNumber;
// }public Object getStuNumber() {return stuNumber;}public void setStuNumber(Object stuNumber) {this.stuNumber = stuNumber;}
}
Mayikt.java
package com.collection.Demo05;public class Mayikt <T>{/*** 泛型类格式: public class Mayikt<T>* private T t;* 在类中定义的成员属性 泛型 T类型,与在类上定义的 泛型类型 相同的*/private T t;public T getT() {return t;}public void setT(T t) {this.t = t;}
}
Test02.java
package com.collection.Demo05;public class Test02 {public static void main(String[] args) {
// Student s1 = new Student();
// s1.setStuNumber("1001");
// s1.setStuNumber(1001);
// System.out.println(s1.getStuNumber());Mayikt<String> stringMayikt = new Mayikt<>();stringMayikt.setT("1001");System.out.println(stringMayikt.getT());Mayikt<Integer> integerMayikt = new Mayikt<>();integerMayikt.setT(1001);System.out.println(integerMayikt.getT());Mayikt<Double> doubleMayikt = new Mayikt<>();doubleMayikt.setT(1001.00);System.out.println(doubleMayikt.getT());// 如果new Mayikt<>();中没有传递参数类型,默认就会创建Object类型,使用就需要类型转换加 instanceofMayikt<Object> objectMayikt = new Mayikt<>();}
}
下一篇文章:泛型方法