java中数据类型的强制转换

第九行这里用反射创建了一个对象在赋给父类类型的引用变量时为什么要强转加个(Base)呢?如果创建的是子类对象赋给父类引用变量不就是向上转型不是直接就可以转了吗,如果创建的是父类对象就直接赋给父类引用变量不就行了,咋看也不用加这个(base)啊,但是删掉后编译又不通过,不知道为啥,脑壳痛

img

必须要加的,因为通过Class.forName("xxx").newInstance();这种方式创建的对象是顶级超类Object,反射容器在创建之前不知道你的目标类;如果想精确一点话,可以改一下。比如使用Base.class.newInstance()这种方式就可以不用加泛型。希望可以解决你的疑问。