PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: 是的,这是个语法糖,实际上就是个数组。
作者回复: 覆盖是指子类中定义一个和父类相同(签名+返回值)的方法,商品类里并没有定义getClass方法,这个是单纯的继承了Object类里的getClass方法。
作者回复: 试试看getDeclaredField。对于private的field记得setAccessible为true哦
作者回复: 不同类型的可以用“Object…”作为参数类型
作者回复: kmport是告诉java编译器,这个类要使用外部的类。后面会有详细讲解的
作者回复: throw出去没人处理的话,就会被线程这么打印出来,报错。
作者回复: getField不会返回private修饰的Field 这里要用getDeclaredField,而且要用实际包含这个Field的类的Class实例来调用,这里就是Merchandise的class,因为getDeclaredField只会返回当前类中声明的Field,继承来的Field不算。 这些细节在这些方法的javadoc里都有,点进去看方法注释就能找到。