Java 如何跟踪在类中创建的对象
这个问题是在一次采访中问我的。他想知道,假设我们为一个类创建了一个对象,并且像这样创建了多个对象。因此,如果已经创建了任何对象,那么我如何跟踪创建的对象 我的做法:- 1:-首先我想用计数来获得创建对象的轨迹,但后来我无法清楚地解释他 回家后,我试图在互联网上搜索,但没有找到任何具体的结果,但今天当我搜索同一个问题时,我得到了一个与该问题有点相关的东西。它是私有的 我的想法正确吗?如果没有,请告诉我如何解决这个问题。除了保留一个变量并在类中至少提供一个构造函数之外,没有其他简单的方法。现在在这个构造函数中,每次递增一个变量 如果您意识到线程安全性,那么使用AtomicInteger类型,这应该可以解决您的问题 所以,如果已经创建了任何对象,那么我如何跟踪 创建的对象 在类中定义一个Java 如何跟踪在类中创建的对象,java,algorithm,constructor,Java,Algorithm,Constructor,这个问题是在一次采访中问我的。他想知道,假设我们为一个类创建了一个对象,并且像这样创建了多个对象。因此,如果已经创建了任何对象,那么我如何跟踪创建的对象 我的做法:- 1:-首先我想用计数来获得创建对象的轨迹,但后来我无法清楚地解释他 回家后,我试图在互联网上搜索,但没有找到任何具体的结果,但今天当我搜索同一个问题时,我得到了一个与该问题有点相关的东西。它是私有的 我的想法正确吗?如果没有,请告诉我如何解决这个问题。除了保留一个变量并在类中至少提供一个构造函数之外,没有其他简单的方法。现在在这个
static
字段,以存储跟踪的信息,并在每次调用任何构造函数时更新它。例如,要跟踪创建的实例及其日期时间创建,请假设您有一个已声明的构造函数:
public MyClass{
private static final List<TrackedInformationForMyClass> trackedInformationForMyClasses = new ArrayList<>();
public MyClass(){
// tracking
trackedInformationForMyClasses.add(new TrackedInformationForMyClass(this, LocalDateTime.now()));
// usual code
...
}
}
我很难理解这个问题。您是否在询问如何跟踪为特定类创建的实例数?为什么不在构造函数中增加一个静态计数器呢?实际上,那个家伙问我的问题很简单,假设我正在为一个类创建对象(在运行时),并且一个类中可以有多个对象,那么我如何跟踪创建的对象呢。如果它是被创造出来的,那么我可以说像这个特殊的物体被创造了两次,直到不确定你在说什么。你不能创建一个特定的对象两次。如果不能,那么我可以跟踪它吗?跟踪什么?好的,就像每当创建一个对象时,变量计数就会增加一样。
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
}