Java——泛型Generic

1、泛型可以解决数据类型的安全性问题,主要原理是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。
2、格式:
访问权限 class 类名称<泛型,泛型…>{
属性
方法
}
3、泛型对象的创建
类名称<具体类型> 对象名称 = new 类名称<具体类型>();

4、通配符<?> : 使用一个奇怪的问号表示类型参数。是一种表示未知类型的类型约束的方法。

例如:

简单的泛型 Box 类中的T类型

public interface Box<T> {
    public T get();
    public void put(T element);
}

带有通配符参数的 Unbox 方法

public void unbox(Box<?> box) {
    System.out.println(box.get());
}

此处参数(Box<?> box)表示一个未知类型的box对象,因为还不清楚T的类型,如果擅自定义一个类型,那么T类型就被锁死,就不符合泛型的意义了。因此此处的通配符表示任意类型。

引用自:http://blog.sina.com.cn/s/blog_65554d980100ijft.html

5、泛型方法:泛型方法中可以定义泛型参数,此时,参数的类型就是传入的类型。

格式:访问权限 <泛型标识> 泛型标识 方法名称([泛型标识 参数名称])
例如:

public <T>T tell(T t){
    return t ;
}

调用的时候直接使用对象调用该方法
实例.tell(需要的参数)
例如:实例.tell(“thisistell”) 或者 实例.tell(10)
分别返回 String类型的thisistell 和 Integer类型的10

6、泛型数组:在使用泛型方法时候,也可以传递或者返回一个泛型数组。
例如:

public class GenericDemo{

    public static void main(String[] args){
        //此处arr数组可以设置为任意类型,String、int等都可以,泛型数组可以就收任意类型
        String arr[] = {"zhangsan","lisi","wangwu"};
        //Integer arr[] = {1,2,3,4};
        tell(arr);
    }

    public static <T>void tell(T arr[]){
        for(int i = 0; i < arr.length ; i++)
            system.out.println(arr[i]);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值