听完张老师的反射讲解以后,自以为对万物皆对象又多一层理解,但是张老师的反射中没有提到静态代码块和构造代码块的问题。
于是自己去查api,也没有发现类似的方法能够捕捉代码块的,除了Class,Method,Field和布尔以外有几个不太懂的方法,但是返回类型好像都不是我想要的,于是我百度,关键词构造代码块 反射,出来一堆乱七八糟的,到这里我基本肯定一个结论,java中并没有一个对象是用来表示代码块的,这是为啥?
我自己想到一个解释,因为最初我是想着,代码块中也会定义static变量存放在静态区中,但是我测试的时候编译不通过,就是说编译器不允许代码块访问静态区,它只能操作栈与堆区的数据,因此java觉得代码块足够简单,所以不用用一个专门的对象来表示它。
这个也就勉强自己骗一下自己,感觉还是和拿出来大家一起讨论一下的好。。 |
|