为什么要Foo类型转换呢 ?本来c1.newInstance()就是Foo类的对象,那么Foo foo不也是Foo的吗 都一样的类型为什么要转换呢 ?求大神解释啊@
我理解是这个会根据c1属于不同的类型,那么c1.newInstance()就会实例化出相应的类型,也就是说其实是无法确定的类型,加上类型转换就是告诉它要转化成相应类型,
就像Object一样,他算是很多东西的祖宗,可以代表各种东西。你写 Object f1=new Foo();同样不会报错,但是当某个东西返回的是Object格式,哪怕你知道返回来的是Foo类型,同样需要类型转换来接收它。比如
Foo f2=(Foo)new Object();这里必须加上(Foo)这个类型转化。
哦哦 第二句说的是错的啊 !感谢大神!哎,基础差就是不行啊
c1的类型是Class不是Foo