为了账号安全,请及时绑定邮箱和手机立即绑定

这句不太理解,

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

正在回答

2 回答

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

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

0 回复 有任何疑惑可以回复我~
#1

qq_慕沐0281811 提问者

自己解决了,这句看起来像赋值给一个officeable的实例化对象,查了下似乎表示一个实现了officeable接口的对象。
2018-12-26 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
反射——Java高级开发必须懂的
  • 参与学习       151150    人
  • 解答问题       335    个

反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础

进入课程

这句不太理解,

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信