• 利用反射,更改string对象的value数组以达到改变string值。


    package test;

    import java.lang.reflect.Field;

    import lombok.Value;

    public class Test1{
    public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
    String string = "kkk1";
    string.hashCode();
    String string2 = string;
    String string3 = string;
    printhashCode(string2);
    System.out.println(string2);
    System.out.println(string3);


    }
    static void printhashCode(String string) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
    Class class1 = string.getClass();
    Field declaredField = class1.getDeclaredField("value");
    declaredField.setAccessible(true);
    char value[] = "kkk".toCharArray() ;
    int a = 10;
    Object object = declaredField.get(string);
    char[] cha = (char[])object;
    cha[2] = 'm';
    System.out.println(cha);
    }
    }

    代码我cp到这儿了。

    其实也就是利用反射,获取string的value属性的field对象,再通过get获取相应string对象的value属性的值。

    再强转为char[],然后更改。

  • 相关阅读:
    SQL server查询笔记
    thinkphp ajax无刷新上传头像
    JSTL
    EL表达式
    jBox 弹框内容交互
    网页可读不可写
    readonly与disable的区别
    vuex 的使用
    页面向上滚动
    按照数组中的对象属性进行排序
  • 原文地址:https://www.cnblogs.com/mcmx/p/11332951.html
Copyright © 2020-2023  润新知