有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java这是计算对象实例的有效方法吗?

这是计算对象实例的有效方法吗?还是我不应该放弃

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

解决方案不必是线程安全的


共 (2) 个答案

  1. # 1 楼答案

    如果我得到了您想要实现的目标,那么您需要计算在应用程序中创建的MyClass实例的数量。如果是这种情况,则需要声明instances变量和getInstances方法static

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

    此外,我会将实例重命名为InstanceCount(或简单地计数),并对getInstances方法执行相同的重命名

  2. # 2 楼答案

    instances标记为static volatile。其次,从不重写finalize方法。另外,在代码原样中,请注意,您不能在public static int getInstances方法中访问instances变量