标签: java generics
假设有两个类: 圈子扩展形状
圈的类对象可以使用以下方式访问: Class<Circle> circleClass = Circle.class;
Class<Circle> circleClass = Circle.class;
但是,以这种方式获取 Shape 的 Class 对象时出现编译错误: Class<Shape> shapeClass = circleClass.getSuperclass();
Class<Shape> shapeClass = circleClass.getSuperclass();
我不明白为什么编译器不允许这个声明。由于Java只允许每个类只有一个基类,并且编译器在编译时知道该基类(即 Shape )是什么。