欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 通過反射變更String的值過程詳解

 更新時(shí)間:2019年10月09日 09:20:47   作者:小龍_T無限  
這篇文章主要介紹了Java 通過反射變更String的值過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

目的

變更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)文章

  • java實(shí)現(xiàn)五子棋程序

    java實(shí)現(xiàn)五子棋程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)五子棋程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • SpringBoot進(jìn)行Web開發(fā)的實(shí)現(xià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 NIO Buffer過程詳解

    Java NIO Buffer過程詳解

    這篇文章主要介紹了Java NIO Buffer過程詳解,緩沖區(qū)在java nio中負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)。緩沖區(qū)就是數(shù)組。用于存儲(chǔ)不同數(shù)據(jù)類型的數(shù)據(jù)。,需要的朋友可以參考下
    2019-06-06
  • 詳解Java中的println輸入和toString方法的重寫問題

    詳解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
  • Java TreeMap排序算法實(shí)例

    Java TreeMap排序算法實(shí)例

    這篇文章主要介紹了Java TreeMap排序算法,結(jié)合實(shí)例形式分析了TreeMap排序算法的原理、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07
  • java環(huán)境變量配置和adb的配置教程詳解

    java環(huán)境變量配置和adb的配置教程詳解

    這篇文章主要介紹了java環(huán)境變量配置和adb的配置教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 淺談SpringBoot項(xiàng)目如何讓前端開發(fā)提高效率(小技巧)

    淺談SpringBoot項(xiàng)目如何讓前端開發(fā)提高效率(小技巧)

    這篇文章主要介紹了淺談SpringBoot項(xiàng)目如何讓前端開發(fā)提高效率(小技巧),主要介紹了Swagger和Nginx提高效率的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 淺談java中類名.class, class.forName(), getClass()的區(qū)別

    淺談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)行一行或多行代碼

    這篇文章主要介紹了關(guān)于Java利用反射實(shí)現(xiàn)動(dòng)態(tài)運(yùn)行一行或多行代碼,借鑒了別人的方法和書上的內(nèi)容,最后將題目完成了,和大家一起分享以下解決方法,需要的朋友可以參考下
    2023-04-04
  • Java操作MongoDB數(shù)據(jù)庫的示例代碼

    Java操作MongoDB數(shù)據(jù)庫的示例代碼

    這篇文章主要介紹了Java操作MongoDB的示例代碼,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論