反射学习——反射修改String中的value属性(char[])
上图结论:可以通过反射获取String对象的value属性,然后有两种方式修改:1.构建一个新的char[]数组进行替换 2.构建一个char[]指向同一对象,对该对象中的内容进行修改(即char[0='X'])
反射结论:对于private修饰的字段,可以利用setAccessible(true)函数处理;同时,反射可以直接处理final或者static修饰的字段;如果需要修改static且final的字段,可以通过去除该字段的修饰符final,将该字段改为只被static修饰,因此也可以进行修改。
注意:无法直接对String类型的字段进行修改是因为JVM在编译时期, 就把final类型的String进行了优化, 在编译时期就会把String替换成常量。