使用泛型的好处,定义和使用含有泛型的类

使用泛型的好处:

创建集合对象,使用泛型好处:

1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型

2.把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错)

弊端:泛型是什么类型,只能存储什么类型的数据

public class fanxing {
    public static void main(String[] args) {
        show();

    }

    /**
     * 创建集合对象,使用泛型
     * 好处:
     * 1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型
     * 2.把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错)
     * 弊端:
     *  泛型是什么类型,只能存储什么类型的数据
     */

    private static void show(){
        ArrayList<String> list = new ArrayList<>();
        list.add("abc");

        //使用迭代器遍历list集合
        Iterator<String> it = list.iterator();
        while (it.hasNext()){
            String next = it.next();
            System.out.println(next+"->"+next.length());
        }
    }
}

 

 

 

 

定义和使用含有泛型的类:

定义一个含有泛型的类,模拟Arraylist集合

泛型是一个未知的数据类型,当我们不确定什么什么数据类型的时候,可以使用泛型

泛型可以接收任意的数据类型,可以使用Integer ,String,student. . .

创建对象的时候确定泛型的数据类型

定义格式:

修饰符  class  类名<代表泛型的变量>{  }

例如,API中的ArrayList集合:

class  ArrayList<E>{

public boolean add(E e){ }

public E get(int index){   }

......

}

使用泛型:即什么时候确定泛型。

/**
 * 定义一个含有泛型的类,模拟ArrayList集合
 * 泛型是一个未知的数据类型,当我们不确定什么什么数据类型的时候,可以使用泛型
 * 泛型可以接收任意的数据类型,可以使用Integer,string, student. . .
 * 创建对象的时候确定泛型的数据类型
 */
public class fanxinglei <E>{
    private E name;

    public  E getName() {
        return name;
    }

    public void setName(E name) {
        this.name = name;
    }
}
public class fanxin {
    public static void main(String[] args) {
        //不与泛型默认为0bject类型
        fanxinglei faxinglei = new fanxinglei();
        faxinglei.setName("魔冰");
        Object name = faxinglei.getName();

        //创建fanxinglei对象,泛型使用Integer类型
        fanxinglei<Integer> fanxinglei = new fanxinglei<>();
        fanxinglei.setName(2);

        Integer name1 = fanxinglei.getName();
        System.out.println(name1);

        //创建fanxinglei对象,泛型使用string类型
        fanxinglei<String> fanxinglei1 = new fanxinglei<>();
        fanxinglei1.setName("冰穆尼");
        String name2 = fanxinglei1.getName();
        System.out.println(name2);
    }
}

 

 

 

 

 

posted @ 2022-07-06 16:01  冰灵IT  阅读(58)  评论(0)    收藏  举报