public static <T> List<T> foo(Class<T> clazz, /* 其他参数*/) throws IllegalAccessException, InstantiationException {
List<T> result = new ArrayList<>();
T item = clazz.newInstance();
// 业务代码
result.add(item);
return result;
}
这是一个经典的例子,使用范型+Class参数,尽量避免了类型强势转换,but,总有一些API会用List<Object>的形式返回,比较好的类型强转如下:
List objList = getPersonList();
List<Person> personList = null;
objList = Collections.singletonList(personList);
if (!objList.isEmpty() && objList.get(0) instanceof Person) {
personList = (List<Person>) objList;
}
本文探讨了在Java中如何使用泛型和Class参数来增强代码的灵活性和安全性,避免了类型强制转换的问题。通过具体示例展示了如何创建泛型方法,并在方法中使用Class参数实例化对象,同时给出了在处理List<Object>类型数据时进行类型安全转换的建议。
492

被折叠的 条评论
为什么被折叠?



