Java 通過(guò)反射變更String的值過(guò)程詳解
目的
變更String對(duì)象里面的值
方法
采用反射技術(shù),獲取String里面的值,并改變
代碼
通過(guò)反射技術(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類(lèi)對(duì)應(yīng)的Class
Class<? extends String> clazz = str.getClass();
//2、通過(guò)clazz獲取類(lèi)中的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、通過(guò)temp的地址引用 找到真實(shí)String對(duì)象中的數(shù)組,修改數(shù)組內(nèi)的每一個(gè)元素
//由于此處是char類(lèi)型,所以要用單引號(hào)
temp[0] = '北';
temp[1] = '京';
temp[2] = '冷';
System.out.println("反射操作過(guò)后的str內(nèi)容:"+str);
}
}
運(yùn)行結(jié)果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java SelectableChannel的使實(shí)例用法講解
在本篇文章里小編給大家整理的是一篇關(guān)于java SelectableChannel的使實(shí)例用法講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-03-03
java.util.NoSuchElementException原因及兩種解決方法
本文主要介紹了java.util.NoSuchElementException原因及兩種解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
關(guān)于@RequestParam注解的使用(簡(jiǎn)單易懂)
這篇文章主要介紹了關(guān)于@RequestParam注解的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
SpringBoot Starter自定義之創(chuàng)建可復(fù)用的自動(dòng)配置模塊方式
本文將詳細(xì)介紹如何設(shè)計(jì)和實(shí)現(xiàn)一個(gè)自定義的Spring Boot Starter,幫助讀者掌握這一強(qiáng)大技術(shù),提升代碼復(fù)用性和開(kāi)發(fā)效率,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
win10 eclipse配置環(huán)境變量的教程圖解
本文通過(guò)圖文并茂的形式給大家介紹了win10 eclipse配置環(huán)境變量的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-07-07
一文學(xué)習(xí)Java NIO的ByteBuffer工作原理
很多網(wǎng)友說(shuō)JDK又在寫(xiě)B(tài)ug!下面通過(guò)通過(guò)本文學(xué)習(xí)下為何Java NIO的ByteBuffer這么垃圾,涉及到ByteBuf API 的優(yōu)點(diǎn)及工作原理解析,感興趣的朋友跟隨小編一起看看吧2021-05-05
Spring 實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離的示例
現(xiàn)在大型的電子商務(wù)系統(tǒng),在數(shù)據(jù)庫(kù)層面大都采用讀寫(xiě)分離技術(shù),我們通常的做法就是把查詢(xún)從主庫(kù)中抽取出來(lái),采用多個(gè)從庫(kù),使用負(fù)載均衡,減輕每個(gè)從庫(kù)的查詢(xún)壓力。2017-01-01

