黑马程序员技术交流社区
标题:
谁能帮我解释一下定义泛型下界时,使用getSuperclass()不能...
[打印本页]
作者:
张善颖
时间:
2013-3-17 12:27
标题:
谁能帮我解释一下定义泛型下界时,使用getSuperclass()不能...
class Toy{
}
class FancyToy extends Toy{
}
public class test{
public static void main(String[] args) throws Exception{
Class<FancyToy> ftClass = FancyToy.class;
FancyToy fancyToy=ftClass.newInstance();
Class<? super FancyToy> up = ftClass.getSuperclass();
//Class<Toy> up2= ftClass.getSuperclass();//谁能解释不可以这样做?ftClass基类不就是Toy吗?
Object obj=up.newInstance();
}
}
复制代码
作者:
赵亚威
时间:
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