【问题标题】:How to Return values for each iteration?i'm able to send only last iteration values to my db如何为每次迭代返回值?我只能将最后一次迭代值发送到我的数据库
【发布时间】:2016-04-03 07:09:06
【问题描述】:

我正在使用最后返回值的反序列化方法。我正在使用 for 循环。第一个循环用于获取每个对象并将我的东西应用到第二个 for 循环中的每个对象。

我的问题:

如果我在第一个循环中有 5 个对象,则所有 5 个对象的返回值都应在程序结束时插入到数据库中,但只有最后(第 5 个)对象值插入到我的数据库中。即,仅最后返回第 5 个对象值。(我在类中声明了我所有的 obj,而不是在循环中)

如何将所有 5 个对象的返回值存储到我的数据库中。

如何在每次迭代时将每个返回值发送到 db。

public class MainParserSpout implements Scheme{

public List<Object> deserialize(byte[] arg0) {

    try{
        for(;;){
            //loop of objects
            for(;;){

                //mystuff for each object
                  }
              }

    }catch(Exception e){}

    return new Values(); 

}

public Fields getOutputFields() {
    return new Fields();
    // TODO Auto-generated method stub

}



}

【问题讨论】:

  • 将所有这些值存储在一个列表中,然后返回该列表。一旦触发返回,迭代就结束了
  • 删除了太多代码,导致代码几乎没用,因为我不知道它应该做什么。

标签: java loops return conditional


【解决方案1】:

我认为您正在寻找这样的东西;将每个 Object 添加到列表中,然后返回列表:

public List<Values> deserialize (byte[] arg0) {
    List<Values> list = new ArrayList<>();
    for (some condition ...) { //while the byte array still has data or something
        Values v = new Values()
        //do soething with the Values object.
        list.add(v);
    }

    return list; //return the list with all the Values Objects.

}

如果你想要一些更具体的建议,你应该更清楚你想要做什么,但这可能是你正在寻找的一般想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2017-07-05
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多