如何跟踪在类中创建的对象

时间:2017-10-17 03:02:25

标签: java algorithm constructor

这个问题在接受我的采访时被问到了。他想知道假设我们为一个类创建了一个对象,并且像这样创建了多个对象。因此,如果任何对象已经创建,那么我如何跟踪创建的对象。

我的方法: - 1: - 首先我想用计数来获得创建对象的轨迹但后来我无法清楚地解释他。

回到家后,我试图在互联网上搜索,但我找不到任何具体的结果,但今天当我在搜索相同的问题时,我得到的一件事与这个问题有些相关。它是Construct的私人。

我是否正确思考,如果没有,请让我知道如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

没有其他简单的方法,但保留变量并在类中提供至少一个构造函数。现在在这个构造函数中,每次增加一次变量。

如果您对线程安全有意识,那么请使用AtomicInteger类型,这样可以解决您的问题。

答案 1 :(得分:0)

  

因此,如果任何对象已经创建,那么我如何跟踪   对象创建。

在类中定义static字段以存储跟踪的信息,并在每次调用任何构造函数时更新它。
例如,通过假设您有一个声明的构造函数来跟踪创建的实例及其日期时间的创建:

public MyClass{

   private static final List<TrackedInformationForMyClass> trackedInformationForMyClasses = new ArrayList<>();

   public MyClass(){

        // tracking 
        trackedInformationForMyClasses.add(new TrackedInformationForMyClass(this, LocalDateTime.now()));
        // usual code
       ...
   }
}

其中TrackedInformationForMyClass是包含跟踪信息的模型类:

public class TrackedInformationForMyClass{
    private LocalDateTime datetime;
    private MyClass myClass;

   public TrackedInformationForMyClass(LocalDateTime datetime, MyClass myClass){
       this.datetime = datetime;
       this.myClass = myClass;
   }
   ... getter and helpful methods
}