Home » Java » How to initialize array of custom class objects? [duplicate]

How to initialize array of custom class objects? [duplicate]

Posted by: admin December 28, 2021 Leave a comment

Questions:

It sounds easy but i’ve been trying to do it for quite sometime, I want to initialize my custom class object array using curly braces

Here is the failed example:

class:

class Tranforminfo{
        int left;
        int top;
        int right;
        int bottom;
        float rorate;

        public Tranforminfo(int left, int top, int right, int bottom, float rorate) {
            this.left = left;
            this.top = top;
            this.right = right;
            this.bottom = bottom;
            this.rorate = rorate;
        }
    }

Usage: (not correct)

// attempt 1 
Tranforminfo somedamn = new Tranforminfo[]{(1,2,3,4,5),(6,4,3,5,6)};

// attempt 2
Tranforminfo somedamn = new Tranforminfo[]{{1,2,3,4,5},{6,4,3,5,6}};

// attempt 3
Tranforminfo somedamn = new Tranforminfo[]((1,2,3,4,5),(6,4,3,5,6));

No luck so far help appreciated , i am coding in android(JAVA)

Answers:

There is some ways to do it:

Transforminfo[] somedamn = 
    new Transforminfo[] { new Transforminfo(1,2,3,4,5),
                          new Transforminfo(6,4,3,5,6) };
Transforminfo[] somedamn = 
    { new Transforminfo(1,2,3,4,5), new Transforminfo(6,4,3,5,6) };  

First you create Transforminfo array link, then add new Transforminfo elements into.

It’s like Integer []array = {1, 2, 3}, but you have to use constructor to create Transforminfo elements.

One more example to understand array of object creating. All way is equal.

String array[] = { new String("str1"), new String("str2") };
String[] array = { new String("str1"), new String("str2") };
String array[] = new String[] { new String("str1"), new String("str2") };
String[] array = new String[] { new String("str1"), new String("str2") };

###

Transforminfo[] somedamn = {new Transforminfo(1,2,3,4,5), new Transforminfo(1,2,3,4,5)};

Transforminfo[] is creating a link to an Array of Transforminfo and with the {...} you create the actual Array (a special java syntax and actually the shortest one)

What you did was: You created a link to a Transforminfo Object and tried to set this link to an Array Object