Java 动态创建对象[][]类型

Java 动态创建对象[][]类型,java,list,object,Java,List,Object,这是我的define类,我没有包含保存它的获取代码 这就是我保存详细信息列表的方式 ArrayList<Details> myDetails = new ArrayList<Details>(); 这就是我为表设置行/列的方式 dm.setDataVector(getStockTable(), new Object[] { "Name","Price", "Quan", "Total Value" }); 在一番胡闹之后,我还没有想出一个办法来做这件事。请不要只是填鸭

这是我的define类,我没有包含保存它的获取代码

这就是我保存详细信息列表的方式

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