如何减少复制粘贴?

时间:2011-02-10 10:51:47

标签: java

如果我有许多类似的课程,请说:

Integer i0;
Integer i1;
Integer i2;
Integer i3;
Integer i4;
Integer i5;
Integer i6;
Integer i7;
Integer i8;
Integer i9;

并希望避免这样做:

i0 = 0;
i1 = 1;
i2 = 2;
i3 = 3;
i4 = 4;
i5 = 5;
i6 = 6;
i7 = 7;
i8 = 8;
i9 = 9;

我正在考虑做类似的事情以达到相同的效果:

int cnt = 0;
for(classname : arrayOfClassNames {
    classname = cnt++;
}

我该怎么做?

[澄清]我似乎被误解了。我更多地考虑了10个单独的类,而不是一个有10个项目的数组。

4 个答案:

答案 0 :(得分:9)

使用数组或ArrayList?

// using an array
Integer[] ints = new Integer[10];
for (int i = 0; i < 10; i++) {
    ints[i] = i;
}

// using an array list
ArrayList<Integer> ints = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
    ints.add(i);
}

继续更新后,您可以使用

实现目标
Class.forName(classname).newInstance();

但是,我建议无论你及时编写代码,都会失去可读性和易维护性,因此你可能会发现这是一种虚假经济。

答案 1 :(得分:5)

将它们存储在一个数组中:

Integer[] array = new Integer[10];
for(int i = 0 ; i < 10 ; i++){
    array[i] = i ;
}

获取i9:array[9]

答案 2 :(得分:1)

许多类似的类听起来像你想要一个数组:

Integer[] manyI = new Integer[] {0, 1, 2, ....};

或者用循环填充数组:

Integer[] manyI = new Integer[10];
for (int i = 0; i < manyI.length; i++) manyI[i] = i;

答案 3 :(得分:1)

使用java.util.Map<T, K>

Map<String, Integer> map = new HashMap<String, Integer>();

for (int i = 0; i < 10; i++)
{
  map.put("i" + i, i);
}

System.out.println(map);
System.out.println("i8: " + map.get("i8"));