《Java编程思想》动态类型安全

来源:互联网 发布:centos 6.8安装教程 编辑:程序博客网 时间:2024/06/07 00:35

17.9.15:这几天看书速度太慢,一定要在28号之前把《Java编程思想》所有剩下的代码搞定。
这一小节比较简单,主要是了解新代码与Java SE5之前的代码兼容,早先的代码很多并不具备泛型这个概念,所以我们在和以往代码兼容时,需要注意这一点,有一些方法可以帮助我们解决这个问题:Collections中有一组静态方法——checkedCollection(),checkedList(),checkedMap(),checkedSet(),checkedSortedMap(),checkedSortedSet(),每个方法对应相应的泛型容器。具体使用方法,直接上代码:

import java.util.*;class Pet{}class Cat extends Pet{}class Dog extends Pet{}public class CheckList{    @SuppressWarnings("unchecked")    static void oldStyleMethod(List probablyDogs)    {        probablyDogs.add(new Cat());    }    public static void main(String[] args)    {        List<Dog> dogs1 = new ArrayList<Dog>();        oldStyleMethod(dogs1);        //在不使用动态类型检查的情况下,下面的代码将会在运行时报错        //System.out.println(dogs1.get(0).getClass().getSimpleName());        //下面的代码使用了受检查的类型,所以在运行时会抛出异常        List<Dog> dogs2 = Collections.checkedList(new ArrayList<Dog>(), Dog.class);        try{            oldStyleMethod(dogs2);        }catch(Exception E){            System.out.println(E);        }        List<Pet> pets = Collections.checkedList(new ArrayList<Pet>(), Pet.class);        pets.add(new Dog());        pets.add(new Cat());    }}

适当的加入动态类型检查也是可以增加代码的健壮性的。

阅读全文
0 0
原创粉丝点击