如何初始化自定义类对象的数组?

时间:2016-08-14 19:53:11

标签: java android

这听起来很容易,但我一直试图这么做,I want to initialize my custom class object array using curly braces

这是失败的例子:

类:

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

用法:(不正确)

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

到目前为止没有运气帮助赞赏,我在android(JAVA)编码

2 个答案:

答案 0 :(得分:8)

有一些方法可以做到:

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

首先创建Transforminfo数组链接,然后将新的Transforminfo元素添加到。

它与Integer []array = {1, 2, 3}类似,但您必须使用构造函数来创建Transforminfo元素。

了解对象创建数组的另一个示例。一切都是平等的。

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

答案 1 :(得分:2)

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

Transforminfo[]正在创建一个指向Transforminfo数组的链接,并使用{...}创建实际数组(一种特殊的java语法,实际上是最短的语法)

您所做的是:您创建了一个指向Transforminfo对象的链接,并尝试将此链接设置为数组对象