问答详情
源自:2-1 Java 动态加载类

这句不太理解,

OfficeAble oa=(OfficeAble)c.newInstance();
用c类取得一个新对象oa能明白,但是oa前面的接口名和后面的强制类型转换(?)看不懂,接口还有这种操作的吗。。

提问者:qq_慕沐0281811 2018-12-23 19:47

个回答

  • 伊万诺维奇
    2018-12-24 19:18:32
    已采纳

    这条语句的目的是要取得一个对象,但是通过反射获取到的是Object对象,需要强制转换;https://img.mukewang.com/5c20c0160001f0c104430162.jpg

    关于"接口还有这种操作的吗",不是很懂想问什么

  • qq_椭圆的南瓜_03336888
    2019-03-03 14:25:31

    查看源码会发现,c.newInstance()返回的对象是Object的,但你现在是要赋值给Integer类型的,两个类型不一致,因此编译时直接报错提示你,如果确实返回的对象就是Integer类型,可以进行强制转换(Integer)c.newInstance();