在學習Java的時候經常看到說通過Final修飾的東西是不可以修改的
那么今天我們來看下通過Final修飾的字串可能修改嘛
final String s = "abc";
目的是將它修改成akc,就是修改了中間的字符
到這里大家先回顧下學習反射的知識,在撰寫一個類的時候,每 個類里面都是有屬性存在,
但是通過反射機制是可以獲取到里面的屬性的
Field field = clazz.getDeclaredField("children");
在反射里面還有一個可以設定安全的一個方法setAccessible大家還記的這個方法嘛
思路:
- 在String中用于保存字串是一個char型別的陣列
- 我們就獲取出來這個屬性
- 修改這個欄位的Accessible
- 修改陣列中的值
public static void main(String[] args) {
final String s = "abc";
try {
Field value = https://www.cnblogs.com/sdayup/p/s.getClass().getDeclaredField("value");
value.setAccessible(true);
char[] o = (char[])value.get(s);
o[1] = 'k';
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/144253.html
標籤:Java
上一篇:淺談資料庫事務隔離
下一篇:計算機網路知識總結
