Java 动态创建对象[][]类型
这是我的define类,我没有包含保存它的获取代码 这就是我保存详细信息列表的方式Java 动态创建对象[][]类型,java,list,object,Java,List,Object,这是我的define类,我没有包含保存它的获取代码 这就是我保存详细信息列表的方式 ArrayList<Details> myDetails = new ArrayList<Details>(); 这就是我为表设置行/列的方式 dm.setDataVector(getStockTable(), new Object[] { "Name","Price", "Quan", "Total Value" }); 在一番胡闹之后,我还没有想出一个办法来做这件事。请不要只是填鸭
ArrayList<Details> myDetails = new ArrayList<Details>();
这就是我为表设置行/列的方式
dm.setDataVector(getStockTable(), new Object[] { "Name","Price", "Quan", "Total Value" });
在一番胡闹之后,我还没有想出一个办法来做这件事。请不要只是填鸭式地给我一个答案,我希望能够理解如何去做,而不是让我去做。一个
对象[]
只是一个对象[]
的数组,所以OO的方法是在细节中添加一个方法,创建一个“行”对象[]
public Object[] toRow() {
return new Object[] { getName(), String.valueOf(getPrice()) /* etc. */ };
}
然后在getStockTable
Object[][] tbl = new Object[myDetails.size()][];
int row = 0;
for(Detail d : myDetails) {
tbl[row++] = d.toRow();
}
像这样的
public Object[][] getStockTable() {
ArrayList<Details> details = getDatailsList();
Object[][] result = new Object[details.size()][];
for (int i = 0; i < details.size(); i++) {
Details detail = details.get(i);
Object[] det = new Object[4];
det[0] = detail.getName();
det[1] = detail.getPrice();
det[2] = detail.quan();
det[3] = detail.totalValue();
result[i] = det;
}
return result;
}
public对象[][]getStockTable(){
ArrayList details=getDatailsList();
对象[][]结果=新对象[details.size()][];
对于(int i=0;i
你可以使用反射
来确定字段,然后创建数组
你能给出一个例子或链接到一个好的tut吗?无需反射,他可以迭代他的列表,并根据需要使用getter创建他的数组。这实际上是将数组名称、价格、数量和总值放入正确的对象[][]格式如图所示,其混乱的meNice OO代码,我不明白我怎么并没有想到这一点。很好的回答很好的回答,终于理解了所需的逻辑+1
Object[][] tbl = new Object[myDetails.size()][];
int row = 0;
for(Detail d : myDetails) {
tbl[row++] = d.toRow();
}
public Object[][] getStockTable() {
ArrayList<Details> details = getDatailsList();
Object[][] result = new Object[details.size()][];
for (int i = 0; i < details.size(); i++) {
Details detail = details.get(i);
Object[] det = new Object[4];
det[0] = detail.getName();
det[1] = detail.getPrice();
det[2] = detail.quan();
det[3] = detail.totalValue();
result[i] = det;
}
return result;
}