public class TestingImpl implements Testing {
User user = new User();
public TestingImpl(){
user.setId(33);
user.setName("cat");
} @Override
public void testFor1() {
} @Override
public void testFor2() {
recycle(user);
}
private void recycle(Object ...args) {
for (int i = 0, len = args.length; i < len; i++) {
if(args[i] instanceof User)
((User)args[i]).setName("44");
args[i] = null;
}
System.gc();
}
private class User{
private int id;
private String name;
public User(){
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}}为什么user没有被回收掉?求解...
User user = new User();
public TestingImpl(){
user.setId(33);
user.setName("cat");
} @Override
public void testFor1() {
} @Override
public void testFor2() {
recycle(user);
}
private void recycle(Object ...args) {
for (int i = 0, len = args.length; i < len; i++) {
if(args[i] instanceof User)
((User)args[i]).setName("44");
args[i] = null;
}
System.gc();
}
private class User{
private int id;
private String name;
public User(){
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}}为什么user没有被回收掉?求解...
你应该这么写会好点
User user;
然后在程序里new,即user=new User();