泛型类定义的格式:
格式:修饰符 class 类名<类型>{}
范例:public class Mayikt
{} 此处T可以随便写为任意标识,T、E、K、V 等形式的参数常用于表示泛型
- package com.collection.Demo05;
-
- /**
- * 问题: 学号可能是String or Integer类型
- * 解决1:使用Object类型——但不推荐(需要类型判断if (Object instanceof String) or Integer)
- * 解决2:泛型类——格式:public class Mayikt
{} - */
- 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
{ - /**
- * 泛型类格式: public class Mayikt
- * 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
stringMayikt = new Mayikt<>(); - stringMayikt.setT("1001");
- System.out.println(stringMayikt.getT());
- Mayikt
integerMayikt = new Mayikt<>(); - integerMayikt.setT(1001);
- System.out.println(integerMayikt.getT());
- Mayikt
doubleMayikt = new Mayikt<>(); - doubleMayikt.setT(1001.00);
- System.out.println(doubleMayikt.getT());
-
- // 如果new Mayikt<>();中没有传递参数类型,默认就会创建Object类型,使用就需要类型转换加 instanceof
- Mayikt
- }
- }
下一篇文章:泛型方法