为了账号安全,请及时绑定邮箱和手机立即绑定

有什么方法可以判断一个方法是结束还是本地方法不再使用?

有什么方法可以判断一个方法是结束还是本地方法不再使用?

MMMHUHU 2021-08-13 15:34:26
我需要一些解决方案来帮助我了解一些方法,在这种情况下:void myMethod(...){    MyObject obj = new MyObject();    // do stuff}如果此方法已结束或 obj 无法访问(这将表明该方法已结束)。我正在编写一个小型 Java 代理,我希望有一些技术可以让我确定此方法结束或 obj 无法访问......在我的情况下,“做东西”部分根本不使用 obj . 它不会将此变量传递到其他地方或将其添加到某个集合中。我知道使用 Weak/Soft/Phantom-References 我可以部分实现这一点。如果调用 GC,则通过:void myMethod(...){    MyObject obj = new MyObject();    WeakReference objReference = new WeakReference(obj);    // do stuff}我总是可以在不同的地方验证:    if (objReference.get() == null) ...然而,这只有在 GC 发生时才可能正确。有没有其他方法可以实现这一目标?例如,一些标记 JVM 可能会放在这个变量上,因为很明显这是一个绝对可以垃圾回收的本地......我不想依赖 ASM - 并为所有这些方法添加一个 try-finally 包装器。希望有一个更微妙的、基于参考的解决方案。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信