手记

集合反序列化中的类型转换

集合反序列化的时候,比如:

List<Person> list = (List<Person>) bundle.getSerializable("PERSON");

有的编译器会报警告:

Unchecked cast: ‘java.io.Serializable’ to ‘java.util.List<com.example.Person>’

这类的。
意思是兄弟我帮你把序列化对象转成集合了,但是集合里面是不是你想要的类型我就不知道了,你最好注意点。
有一个解决办法是先转成集合,自己一个个检查里面的类型对不对:

List<Person> personList = new ArrayList<>();
List objectList = (List) bundle.getSerializable("PERSON");
if (objectList != null) {
    for (int i = 0; i < objectList.size(); i++) {
        Person person = (Person) objectList.get(i);
        personList.add(person);
    }
}

或者直接加一个:

@SuppressWarnings("unchecked")

以上。

2人推荐
随时随地看视频
慕课网APP