黑马程序员技术交流社区

标题: 谁能帮我解释一下定义泛型下界时,使用getSuperclass()不能... [打印本页]

作者: 张善颖    时间: 2013-3-17 12:27
标题: 谁能帮我解释一下定义泛型下界时,使用getSuperclass()不能...
  1. class Toy{
  2. }
  3. class FancyToy extends Toy{

  4. }
  5. public class test{
  6. public static void main(String[] args) throws Exception{
  7. Class<FancyToy> ftClass = FancyToy.class;
  8. FancyToy fancyToy=ftClass.newInstance();
  9. Class<? super FancyToy> up = ftClass.getSuperclass();
  10. //Class<Toy> up2= ftClass.getSuperclass();//谁能解释不可以这样做?ftClass基类不就是Toy吗?
  11. Object obj=up.newInstance();
  12. }
  13. }
复制代码

作者: 赵亚威    时间: 2013-3-17 13:42
你这可以有好多做法 但是就你这道题而言 主要原因在Class<FancyToy> ftClass = FancyToy.class; 因为在这里你已经给ftClass盖上了一个戳而且还是子类的戳 所以想要去掉就只能强转或者左边给与较大的类型范围 如果你这样Class ftClass = FancyToy.class 那么下面你就可以写成你说的那样//Class<Toy> up2= ftClass.getSuperclass();//
作者: 陈丽莉    时间: 2013-3-17 19:40
若还有问题,请继续追问;没有的话,请将帖子分类改成【已解决】~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2