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