Java 通過反射變更String的值過程詳解
更新時間:2019年10月09日 09:20:47 作者:小龍_T無限
這篇文章主要介紹了Java 通過反射變更String的值過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
目的
變更String對象里面的值
方法
采用反射技術,獲取String里面的值,并改變
代碼
通過反射技術替換掉String里面的值
package com.pojo; import java.lang.reflect.Field; /** * @auther::9527 * @Description: 修改String的內容 * @program: jstl2 * @create: 2019-10-03 19:02 */ public class ChangeString { public static void main(String[] args) throws Exception { String str = new String("abc"); System.out.println("輸出原本str的內容:" + str); //1、獲取String類對應的Class Class<? extends String> clazz = str.getClass(); //2、通過clazz獲取類中的value屬性 Field value = clazz.getDeclaredField("value"); //3、需要設置私有屬性可以被操作后才能操作屬性值 value.setAccessible(true); //4、獲取value屬性里面的值(內存地址) //由于 String里面的值是存放在char[] 數(shù)組里面的,所以需要用一個char[]接收 char[] temp = (char[])value.get(str); //5、通過temp的地址引用 找到真實String對象中的數(shù)組,修改數(shù)組內的每一個元素 //由于此處是char類型,所以要用單引號 temp[0] = '北'; temp[1] = '京'; temp[2] = '冷'; System.out.println("反射操作過后的str內容:"+str); } }
運行結果
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
SpringBoot進行Web開發(fā)的實現(xiàn)
Spring?Boot讓我們可以快速構建項目并運行web應用,大大簡化了Spring的復雜配置,本文主要介紹了SpringBoot進行Web開發(fā)的實現(xiàn),感興趣的可以了解一下2023-10-10詳解Java中的println輸入和toString方法的重寫問題
這篇文章主要介紹了Java中的println輸入和toString方法的重寫,一個對象數(shù)組在調用Arrays.toString打印時,相當于遍歷數(shù)組,然后打印里邊每個對象,這再打印對象就調用對象自己的toString了,需要的朋友可以參考下2022-04-04淺談SpringBoot項目如何讓前端開發(fā)提高效率(小技巧)
這篇文章主要介紹了淺談SpringBoot項目如何讓前端開發(fā)提高效率(小技巧),主要介紹了Swagger和Nginx提高效率的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04淺談java中類名.class, class.forName(), getClass()的區(qū)別
下面小編就為大家?guī)硪黄獪\談java中類名.class, class.forName(), getClass()的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05關于Java利用反射實現(xiàn)動態(tài)運行一行或多行代碼
這篇文章主要介紹了關于Java利用反射實現(xiàn)動態(tài)運行一行或多行代碼,借鑒了別人的方法和書上的內容,最后將題目完成了,和大家一起分享以下解決方法,需要的朋友可以參考下2023-04-04