Java重点!泛型+如何使用

本文介绍了Java中的泛型,强调了泛型在避免类型转换、提高代码安全性方面的作用。通过示例展示了泛型在Arraylist、接口和抽象类中的应用,并讨论了通配符的使用场景,指出其能简化不同类型的Arraylist操作。
摘要由CSDN通过智能技术生成
  • 啥是泛型啊?它就是一个变量,用来接收数据的值,泛型就是不知道要创建什么类型的对象,先给他模拟一种,用E代替,例如,集合Arraylist,它内部的Arraylist(E),E就是泛型,当创建对象时例如,Arraylist(String) ,就会把string赋值给E,这就是E的作用,下图中Arraylist都用E代替,因为它不知奥你要传入什么呀,或许integer或许Student在这里插入图片描述
  • 那么问题来了为什么要使用他呢?用不用有什么区别么?
  • 首先,不使用泛型有一个优点乃就是添加进去的对象可以是不同类型的,无需要使用<>这个符号来存类型,不要加i默认object类型。
    并且对象直接时Object类的对象,无论是string还是int都可以,也可以用迭代器来遍历,注意迭代器next()赋值时要用Object obj来接收,同理迭代器也是如此不加。但是缺点就是不能用数据类型本身的方法,比如string中的length()方法,只能用object类的方法。要想输出字符串的length()长,只得向下转型,成string类,再进行使用,没错,但是若遇到下一个add是int类型时,string的length()方法又会失效,会报一个类型转换异常。总之就是容易引发异常。
  • 若使用一个泛型,首先避免了类型转换的麻烦,那么类型已经被定义,不能做更改(也算是一个缺点吧),但是创建对象可以使用迭代器来遍历,还有一个优点是可以报错提前到了编译阶段,就是在输入的阶段,而不是运行阶段。
package Collection2;

import java.util.ArrayList;
import java.util.Iterator;

public class Demo1 {
   
    public static void main(String[] args) {
   
        ArrayList arrayList=new ArrayList();//object类型
        arrayList.add("fds");
        arrayList.add(5);
        arrayList.add("4rew");
        Iterator iterator=arrayList.iterator();
     while(   iterator.hasNext()){
   
            Object o=iterator.next();
         System.out.println(o);

     }

    }
}

在这里插入图片描述
此时加上向下转型
在这里插入图片描述
此时异常出现,int出错了,注意转性时要用object类型的o,不要错用arraylist/iterator

  • 哎哟,泛型真有意思,有意识,长见识了下面是类2,类1

  • 注意不要一上来就psvm,类一泛型创建对象时不在里面。否则出错在这里插入图片描述

  • 默认是object类型

package UseCollection;

public class Use1 {
   
    public static void main(String[] args) {
   
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值