Java 静态方法中 如何将对象置为空?

2021-01-19 17:03发布

1 静态工具方法
public class RedisLockUtils {
public static void getLockFail(Order order){
order = null;
}
}
2 main方法调用静态方法
public static void main(String[] args) {
  Order order = new Order();
  order.setPayOrderNo("222");
  RedisLockUtils.getLockFail(order);
  System.out.println(order);
}
3 打印结果
Order{orderNo='null', payOrderNo='222'}
疑问:
为什么打印结果对象有数据而不是null呢?
有没有办法在静态工具方法中将对象置为空/null?

标签:
3条回答
老娘就宠你
2楼-- · 2021-01-19 17:16

没懂意思,这有先有后的啊,静态的始终优先级最高,没办法在其他地方赋值再静态置空

查看更多
我只想做你的唯一
3楼-- · 2021-01-19 17:39

当order = null;时其实是将内部的order指向一个新的地址(空对象地址)
但是不会对原来的对象产生影响.
public static void getLockFail(Order order){
order.setOrderNo("333");
// 指向了新的地址值 null
order = null;
System.out.println(order);
}

打印结果:
null
RegistryQuotaQuickPayByStagesDto{orderNo='333', payOrderNo='222'}

查看更多
▲ chillily
4楼-- · 2021-01-19 17:41

你只是把方法中的参数的引用设置成null了好不好

查看更多
登录 后发表回答