Discuss / Java / 通过反射修改不可变的String类

通过反射修改不可变的String类

Topic source
try {
    String str1 = "你好?";   
    System.out.println(str1);
    Field field = str1.getClass().getDeclaredField("value");
    field.setAccessible(true);
    char[] finalChars = (char[])field.get(str1);
    finalChars[0] = '很';
    finalChars[1] = '好';
    finalChars[2] = '!';
    System.out.println(str1);
} catch (NoSuchFieldException | SecurityException e) {
    e.printStackTrace();
}

  • 1

Reply