源代码:
List<Class<? extends Pet>> types = new ArrayList<Class<? extends Pet>>();for(String name: typesName)
types.add(Class.forName(name));
编译时会出现警告。正确的代码是types.add((Class<? extends Pet>)Class.forName(name));已知,typesName数组中的所有String元素都是Pet子类的类名。
为什么要将for循环下面的子句Class.forName(name)强制转换呢?即:types.add((Class<? extends Pet>)Class.forName(name));
name不是Pet子类的类名么?那这些String所代表的类的Class对象本身就属于Class<? extends Pet>啊.求高手帮忙解答,谢谢!!!