java泛型

1.什么是java泛型?
这是百度百科的解释
Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
也许对于初学者来说 比较难懂
举个例子
现在有一个车库 并且规定了 这个车库里只允许停具有四个轮子的车。
车库就是一个集合,<四轮车就>是为这个集合指定的泛型。
如果往这个车库里放自行车,三轮车不符合规定的车,那么就会报错。
ArrayList<四轮车> list=new ArrayList();
在此之前 没有 “四轮车”这个参数。车库是没有限制的
就相当于
ArrayList list=new ArrayList();
在没有指定泛型的时候,默认就是Object。
2.泛型的作用
第一是泛化。
第二是类型安全。提高Java程序的类型安全,如果不用泛型则必须使用强制类型转换,而强制类型转换不安全,在运行期可能发生ClassCast Exception异常,如果使用泛型,则会在编译期就能发现该错误。
3.泛型使用
a 泛型类 public class Person{}
b 泛型接口 public interface Person{}
c 泛型方法
举个例子
public class fanxing {
public static void main(String[] args) {
User user=new User();
user.setName(“lisi”);
user.setMoney(new BigDecimal(“300”));
User1 user1=new User1();
user1.setAge(12);
user1.setSex(“nan”);
fanxing1(user);
fanxing1(user1);

}
//这是一个泛型方法  可以传入任何类型的对象 并输出他们的toString方法
//而不用为各种类型的对象创建各自的方法。
//这么用的好处就很明显了
public static  <T> void fanxing1(T t)
{
    System.out.println("这是泛型"+t);
}

}
在泛型中 还有 泛型通配符这个概念
其中的E就是上界

//此时的User1 没有继承User
public class User1  {
    private int age;
    private String sex;
}
public class fanxing<T > {
    public static void main(String[] args) {
        User user=new User();
        user.setName("lisi");
        user.setMoney(new BigDecimal("300"));
        User1 user1=new User1();
        user1.setAge(12);
        user1.setSex("nan");
    fanxing1(user);
    //这里会报错  
    ***fanxing1(user1);***

    }
    //因为方法中  定义 传入的类型只能是User的子类  继承自user类的
    public static  <T extends User> void fanxing1(T t)
    {
        System.out.println("这是泛型"+t);
    }
}
与extends类似 传入的之只能是user的父类,这称为泛型的下界。 以上仅为初学笔记,如有错误欢迎指正!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值