有关自定义泛型的知识点

1.泛型类可能有多个参数,此时应将多个参数一起放入尖括号内。如:

        <E1,E2,E3>

2.泛型类的构造器如下:public GenericClass(){}

        而下面是错误的:public GenericClass<E>(){}

3.实例化后,操作原来泛型位置的结构必须与指定的泛型类型一致.

4.泛型不同的引用不能相互赋值

        >尽管再编译时ArrayList<String>和ArrayList<Integer>是两种类型,但是,在运行时只有一个        ArrayList被加载到JVM中。

5.泛型如果不指定,将被擦除,泛型对应的类均按照Object处理,但不等价与Object。经验:泛型要用一路都用,要不用一路都不要用。

6.如果泛型类是一个接口或者抽象类,则不可创建泛型类的对象。

7.jdk1.7,泛型的简化操作:ArrayList<Fruit>flist = new ArrayList<>();

8.泛型的指定中不能使用基本数据类型,可以使用包装类替换。

9.在类/接口上生名的泛型,在本类或本接口中即代表某种类型,可以作为非静态属性的类型、非静态方法的参数类型、非静态方法的返回值类型。但在静态方法中不能使用 类的泛型。

10.异常类不能是泛型的。

11.不能使用new E[]。但可以:E[] elements = (E[]) new Object[capacity]

        参考:ArrayList源码中声明:Object[] elementData,而非泛型参数类型数祖。

12.父类型有泛型,子类型可以选择保留、部分保留、不保留、自定义新泛型(实际上就是没有限制)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值