本文介绍了这是计算对象实例的有效方法吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是计算对象实例的有效方法吗?或者我不应该覆盖finalize?

Is this a valid way to count instances of objects? Or should I not override finalize?

public class MyClass{
    private int instances;
   public MyClass(){
       instances++;
   }
   @Override
   public void finalize(){
       instances--;
   }
   public static int getInstances(){
       return instances;
   }
}

解决方案不必是线程安全

The solution doesn't have to be Thread safe

推荐答案

实例标记为静态不稳定。其次,从不覆盖 finalize 方法。此外,在代码AS-IS中,请注意您无法访问 public static int getInstances 实例变量>方法。

Mark instancesas static volatile. And secondly, never override the finalize method. Also, in the code AS-IS, note that you can't access to instances variable in your public static int getInstances method.

这篇关于这是计算对象实例的有效方法吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-12 19:48