【发布时间】:2018-09-26 04:23:47
【问题描述】:
为了跟踪实例,我们有一个数组 MyClass[] mc = new MyClass[5];
我想在构造函数调用本身期间保存在此数组中创建的 MyClass 的实例。
类似这样的:
public class MyClass{
private static final int MAX_SIZE = 64;
private static int number = 0;
private static MyClass[] classList= new MyClass[MAX_SIZE];
public MyClass(MyClass mc) {
classList[number++] = mc;
}
public static void main(String[] args) {
MyClass mc1 = new MyClass(mc1);
}
但这不起作用,因为我得到了预期的“mc1 可能未初始化”错误,tbh。
现在,我知道我们可以创建另一种方法来将创建的类的实例保存在数组中,但是这种“保存类的实例”符合类的自身利益,并且不想强迫类的用户调用此方法。因此找到一种方法来在 const 本身中完成它。
我该怎么做呢?非常感谢您提前! :)
请朋友。
【问题讨论】:
-
这不是一个好的设计。将类的 Array 与实际类本身分开。
-
您将 mc1 作为参数传递给构造函数,该构造函数仅在创建 Object 时才被初始化。对于要创建的对象,它需要 mc1 在构造函数中至少为 null 的初始化值,所以这里有点死锁.所以你不能用这个
-
感谢您的快速接受!
标签: java arrays class object instance