在下面的代码中,我试图避免为类的实例分配内存的最后三行。关于如何将内存分配部分放入类定义中的任何建议?所以我想要做的就是能够在pInfo[0].sValue="string";
AClass [] pInfo = new AClass[10];
class AClass {
private String sName="";
private String sValue="";
}
AClass [] pInfo = new AClass[10];
// how to avoid the code below or bring them into class definition?
pInfo[0] = new AClass();
pInfo[1] = new AClass();
...
pInfo[9] = new AClass();
编辑:我的意思是效率就是代码量+代码可读性
答案 0 :(得分:7)
AClass[] pInfo = {new AClass(),new AClass(), etc.};
OR
AClass[] pInfo = new AClass[10];
for(int i = 0; i < pInfo.length; i++)
{
pInfo[i] = new AClass();
}
答案 1 :(得分:1)
您可以尝试这样的事情:
class AClass {
public String sName="";
public String sValue="";
}
class AClassArray {
public AClass[] pInfo;
public AClassArray() {
pInfo = new AClass[10];
for(int i = 0; i < pInfo.length; i++)
pInfo[i] = new AClass();
}
}
使用:
AClassArray aClassArray = new AclassArray();
aClassArray.pInfo[i].sXXXX;
答案 2 :(得分:1)
答案 3 :(得分:0)
class AClass {
private String sName="";
private String sValue="";
public static final AClass[] getArrayOfObjs(int size){
if(size <= 0)
return null; //You can also create your custom exception to be thrown here
AClass[] array = new AClass[size];
for(int i = 0; i < size; i++)
{
array[i] = new AClass();
}
return array;
}
}
然后实例化为
AClass [] pInfo = AClass.getArrayOfObjs(10);