java泛型,泛型类详解

KLQ 2020-08-27 10:42:13 java常见问答 4486

之前给大家介绍了一下java泛型集合方面的内容,下面要给大家介绍的就是泛型类方面的知识,一起通过简单的文章来进行一下了解吧。

泛型类

除了能够定义泛型集合之外,还能够直接限定泛型类的类型参数。

语法格式:

public class class_name<data_type1,data_type2,…>{}

在这当中,class_name表示类的名称,data_ type1等表示类型参数。

Java泛型支持声明一个以上的类型参数,只要将类型用逗号隔开就可以了。

泛型类一般用于类当中的属性类型不确定的情况下。

在声明属性的时候,使用下面的语句:

private data_type1 property_name1;
private data_type2 property_name2;

这个语句当中的data_type1和类声明当中的data_type1表示的是同一种数据类型。

示例:

在实例化泛型类的时候,需要指明泛型类中的类型参数,并赋予泛型类属性相应类型的值。

例:

下面的示例代码创建了一个表示学生的泛型类,这个类当中包括3个属性,分别是姓名、年龄和性别。

public class Stu < N, A, S >
{
    private N name; // 姓名
    private A age; // 年龄
    private S sex; // 性别
    // 创建类的构造函数
    public Stu(N name, A age, S sex)
    {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    // 下面是上面3个属性的setter/getter方法
    public N getName()
    {
        return name;
    }
    public void setName(N name)
    {
        this.name = name;
    }
    public A getAge()
    {
        return age;
    }
    public void setAge(A age)
    {
        this.age = age;
    }
    public S getSex()
    {
        return sex;
    }
    public void setSex(S sex)
    {
        this.sex = sex;
    }
}

接着创建测试类。

在测试类当中调用Stu类的构造方法实例化Stu对象,并给这个类当中的3个属性赋予初始值,最终需要输出学生信息。

测试类的代码实现:

public class Test14
{
    public static void main(String[] args)
    {
        Stu < String, Integer, Character > stu = new Stu < String, Integer, Character > ("张晓玲", 28, '女');
        String name = stu.getName();
        Integer age = stu.getAge();
        Character sex = stu.getSex();
        System.out.println("学生信息如下:");
        System.out.println("学生姓名:" + name + ",年龄:" + age + ",性别:" + sex);
    }
}

程序的运行结果:

学生信息如下:
学生姓名:张晓玲,年龄:28,性别:女

在这个程序的Stu类当中,定义了3个类型参数,分别使用N、A和S来代替,同时实现了这3个属性的setter/getter方法。

在主类当中,调用Stu类的构造函数创建了Stu类的对象,同时指定3个类型参数,分别为 String、Integer和Character。

在获取学生姓名、年龄和性别的时候,不需要类型转换,程序隐式地将Object类型的数据转换为相应的数据类型。

关于泛型类的内容就介绍到这里了,更多相关常见问题,可以继续的关注奇Q工具网来进行了解哦。

推荐阅读:

java泛型,泛型集合详解

java集合类详解