package com
.hongx
.proxy
;
public class Singleton {
public String name
;
public Singleton() {
name
= "FuHongXue";
}
public void setName(String name
) {
this.name
= name
;
}
}
package com
.hongx
.proxy
;
public class ActivityManagerNative {
public static Singleton singleton
;
public ActivityManagerNative() {
singleton
= new Singleton();
}
}
package com
.hongx
.proxy
;
import java
.lang
.reflect
.Field
;
public class App {
static App app
;
public static void main(String
[] args
) {
ActivityManagerNative activityManagerNative
= new ActivityManagerNative();
app
= new App();
try {
Class
<?> activityManagerNativeClass
= Class
.forName("com.hongx.proxy.ActivityManagerNative");
Field sigletoneField
= activityManagerNativeClass
.getDeclaredField("singleton");
sigletoneField
.setAccessible(true);
Object sigletoneObj
= sigletoneField
.get(null
);
Singleton singleton
= (Singleton
) sigletoneObj
;
System
.out
.println("-->" + singleton
.name
);
Singleton singleton2
= new Singleton();
singleton2
.setName("YeKai");
sigletoneField
.set(activityManagerNative
, singleton2
);
System
.out
.println("-->" + ActivityManagerNative
.singleton
.name
);
} catch (Exception e
) {
e
.printStackTrace();
}
}
}
打印:
–>FuHongXue –>YeKai