下面泛型方法定义中,会有啥问题吗?主要是 1 和 3 那样强制转换有问题吗? 当然 Cat 和 Dog 是 extends 了 Animal 类
<T extends Animal> void operate(List<T> animalList, Class<T> c){
...
if(c.equals(Cat.class)){
List catList = (List<Cat>) animalList; //1
catDao.insert(catList); //2
}
if(c.equals(Dog.class)){
List<Dog> dogList = (List<Dog>) animalList; //3
dogDao.insert(dogList); //4
}
...
}
其中 insert()函数定义为:
catDao.insert(List<Cat> catList);
dogDao.insert(List<Dog> dogList);
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.