JAVA中泛型的简单使用

版权声明:未经允许,随意转载,请附上本文链接谢谢(づ ̄3 ̄)づ╭❤~
http://blog.csdn.net/xiaoduan_/article/details/79343257

泛型

为什么使用泛型

在Java中增加泛型之前,泛型程序设计使用继承来实现的
坏处:

  • 需要强制转换
  • 可向集合中添加任意类型的对象,存在风险。
泛型的使用
  • List<String> list=new ArrayList<String>();
  • Java SE7及以后的版本中,构造方法中可以省略泛型类型。
    例如:List<String> list=new ArrayList<>();
多态与泛型
  • 变量声明的类型必须匹配传递给实际对象的类型,父类,子类都不可以
    下面是错误的例子
List<Animal> list=new ArrayList<Cat>();//错误的例子
List<Object> list=new ArrayList<String>();//错误的例子
List<Number> numbers=new ArrayList<Integer>();//错误的例子
泛型可以作为方法参数
  • <? extends Goods> extends后面的内容也可以接接口 表示继承Goods的对象
  • <? super Goods>表示Goods的父类
import java.util.List;
public class GoodsSeller {
    public void sellGoods(List<? extends Goods> goods){
        //调用集合中的sell方法
        for(Goods g:goods){
            g.sell();
        }
    }
}
泛型注意问题
  • 泛型的类型参数只能是类类型不能是基本数据类型
    比如:List<Integer> list=new ArrayList<Integer>();
  • 泛型的原理就是参数化类型
例子
import java.util.ArrayList;
import java.util.List;

public class GoodsTest {

    public static void main(String[] args) {
        //定义book相关的List
        //泛型限定了传入的类型必须是Book类型
        List<Book> books=new ArrayList<Book>();
        books.add(new Book());
        books.add(new Book());
        //定义chothes相关的List
        List<Clothes> clothes=new ArrayList<Clothes>();
        clothes.add(new Clothes());
        clothes.add(new Clothes());
        //定义shoes相关的List
        List<Shoes> shoes=new ArrayList<>();
        shoes.add(new Shoes());
        shoes.add(new Shoes());

        GoodsSeller goodsSeller=new GoodsSeller();
        goodsSeller.sellGoods(books);
        goodsSeller.sellGoods(clothes);
        goodsSeller.sellGoods(shoes);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值