How to initialize array in java when the class con

2020-05-23 10:50发布

问题:

I have this class constructor:

public Category(int max){
...
}

The thing is, I want to make an array of this class, how do I initialize it?

private Category categories = new Category(max)[4];

Does not work.

UPDATE

Do I need to do something like this?

private Category[] categories = new Category[4];

And then initialize each object?

回答1:

When you are making an array , you are creating an array of Category. That s an instance of array.

When you are populating the array with Category objects, at that point you use the Category with Const.

Category [] categories = new Category[4];
categories[0] = new Category(10);


回答2:

You can also do that in-line - make both the array and populate it with values initiated with their constructors at once. Suppose you have a class called Field that has a constructor taking two parameters and you want to construct an array of these ...

Field[] fields = new Field[]{
    new Field(1, "Record_Type"),
    new Field(3, "Record_SubType"),
    new Field(6, "Row_Number"),
    ...
};


回答3:

private Category[] categories = new Category[4];

Will be instantiated with 4 null categories, you have to fill the content yourself later.
Or you can try:

private Category[] categories = {new Category(max), new Category(max), new Category(max), new Category(max)};


回答4:

Initialize it as an array first

Category[] categories = new Categories[4];
categories[0] = new Category(max);

Then initialize each individual element.