我知道错误是什么。我想知道是否有可能做这样的事情。 (基本上寻找另一种方法,但实际上是正确的。)
类别:
private String[] names = {"Player 1", "Player 2"};
public void setName(Object[] objectName, String name)
for(int x = 0; x < objectName.length; x++){
//Problem is below here, "name can not be resolved or is not a field" is doing something like this not possible?
objectName[x].name = names[x];
}
}
编辑以展示如何使用它。
第2课:
Public static void methodName(){
String name;
ClassName2[] c2 = new ClassName2[2];
c2[0] = new ClassName2();
c2[1] = new ClassName2();
c2[0].setName(c2, name);
}
答案 0 :(得分:0)
在你的例子中,变量“objectName”必须具有相同的大小(或更大),如“names”。 使用“String name”,您想要定义要在对象中设置的字段/变量吗?
无论如何,我建议你使用ArrayList,看看例子:
public class ArrayObject {
private String[] names = {"Player 1", "Player 2"};
/**
* @param args
*/
public static void main(String[] args) {
ArrayList<String> myArrayList = new ArrayList<String>();
new ArrayObject().setName(myArrayList);
}
public void setName(ArrayList<String> objectName) {
for(int x = 0; x < names.length; x++) {
objectName.add(names[x]);
}
// Testoutput
for(int x = 0; x < objectName.size() ; x++) {
System.out.println(objectName.get(x));
}
}
}
ArrayList是一个动态数组,您可以在其中添加任意数量的对象,读取它们并删除其中的任何对象。
答案 1 :(得分:0)
我认为你应该特别阅读有关泛型和有界泛型的泛型:http://docs.oracle.com/javase/tutorial/java/generics/bounded.html