【Java】泛型类

泛型类定义的格式:

格式:修饰符 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 objectMayikt = new Mayikt<>();
    }
}
 
  

下一篇文章:泛型方法

你可能感兴趣的:(集合,泛型,java,开发语言,泛型类)