java - Java:无法理解 newInstance() 和 getSuperClass() 类的方法是如何工作的
问题描述
这是“Java Philosophy”一书中的示例(请记住 FancyToy 扩展了 Toy):
Class<FancyToy> ftClass = FancyToy.class;
Class<? super FancyToy> up = ftClass.getSuperclass(); //compiles
Class<Toy> up = ftClass.getSuperclass(); //doesn't compile
在 IDEA 中尝试了很多次,只是有一个“不兼容类型”的消息。请给我一个提示,为什么我们不能只使用泛型玩具?
谢谢
解决方案
FancyToy 的直接超类可能是另一个类!
你的第二行说:它应该是FancyToy 扩展的某个类。
而您的第三行确切地说明了需要哪个类。要么在 Toy 和 FancyToy 之间实际上存在一个级别,要么编译器没有在此处进行必要的类型推断。
推荐阅读
- ios - 如何在 SwiftUI 中处理点击开始
- android - 如何使用Android中的导航控制器制作自定义后退按钮以返回某个目的地?
- android - 在 android API 29 android 中弃用了 telemanager.endCall()
- html - 如何制作上下垂直线
- android - FirebaseTranslatorOptions.Builder 对象未从下拉菜单(微调器)Firebase 翻译 Android 中的文本
- python - 有没有办法将下拉列表放在标签框内?
- javascript - 画布开始滞后时间
- android - 如何使用 MediaRecorder 和 OpenGL ES 记录过滤后的视频帧
- variables - STM32F0。如何将 RAM 中变量的值分配给单独的变量?
- c++ - 访问在 python 中使用 suprocess.check_output 调用的 c++ 代码的输出