无法理解 Class 类的 newInstance() 和 getSuperClass() 方法如何

这是《Java 哲学》一书中的示例(请记住 FancyToy 扩展了 Toy):


Class<FancyToy> ftClass = FancyToy.class;

Class<? super FancyToy> up = ftClass.getSuperclass(); //compiles

Class<Toy> up = ftClass.getSuperclass(); //doesn't compile 

在IDEA中尝试了很多次,只是出现“不兼容类型”的消息。请给我一个提示,为什么我们不能仅使用泛型类型玩具?


天涯尽头无女友
浏览 77回答 1
1回答

呼唤远方

FancyToy 的直接超类可能是另一个类!你的第二行说:它应该是FancyToy 扩展的某个类。而你的第三行确切地说明了需要哪个课程。要么 Toy 和 FancyToy 之间实际上存在一个级别,要么编译器在这里没有进行必要的类型推断。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java