Mr.Z Mr.Z - 2 months ago 3
Java Question

How to initialize array of custom class objects?

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 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; = 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)


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") };