你只能改变void degitir() 方法.无法添加任何内容.只写这个方法 void degitir()
如何改变 String X
static void degitir(String s){
//Only here can be written
}
public static void main(String[] args) throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
String X = "ahmet";
System.out.println("X = " + X);
degitir(X);
System.out.println("X = " + X);
}
Run Code Online (Sandbox Code Playgroud)
有一种方法但它违反了所有其他答案指出的方式,因此应该避免.你想要做的是通过反思来完成的:
static void degitir(String s){
try{
java.lang.reflect.Field field = String.class.getDeclaredField("value");
field.setAccessible(true);
char[] value = (char[])field.get(s);
value[0] = 'J';
value[1] = 'a';
value[2] = 'v';
value[3] = 'a';
value[4] = '!';
}catch(Exception e){
// Add message.
}
}
public static void main(String[] args){
String X = "ahmet";
System.out.println("X = " + X);
degitir(X);
System.out.println("X = " + X);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |