项目是先编译,在编译期间为类分配资源,编译后生成.class文件,运行是运行已经编译好的文件。 问:那如何理解绕过编译运行呢? 老师的意思并不是真正的绕过,而是,eclipse你点run的时候,是编译运行一起来,而老师的操作是,我不需要你编译了,因为第一次我就编译运行了,我现在拿编译好的.class文件,直接运行,不需要再次编译,因为编译好的文件没有泛型的概念,所以老师可以任意输入类型然后运行而没有报错。这是我自己的理解。
list<string>里面的string只是在编译的时候用来检测放入的数据类型是否正确,编译成class的时候已经去掉string了,你再通过反射进行添加的时候已经没有限制了。
反射做了什么:反射使代码的灵活性提高了;
就相当于人的逆向思维;
我觉得不是这个意思,我idea直接运行的,其中就包括了生成字节码这一环节,总结就是,依然走正常的编译流程,通过反射的方法,只是不会再报错而已。