【问题标题】:Java passing iterators to new Objects and returning themJava将迭代器传递给新对象并返回它们
【发布时间】:2011-03-22 02:33:05
【问题描述】:

我创建了一个对象,我将一个字符串和一个长值传递给它,目前我正在将这些值添加到我的对象中,这样我就可以将它添加到这样的列表中:

List myList;
ImageObject io;

for(i = 0; i < 10; i++)
  {
  io = new ImageObject("String", i);
  myList.add(io);
  }

这是对象当前的样子:

public final class ImageObject<name, time>
    {
    public String name = "";
    public long time = 0;


    public ImageObject(Object o)
        {
        // Think I need something here, but im not sure what!
        }

    public ImageObject(String name, long time)
        {
        this.name = name;
        this.time = time;
        }

    public long getTime()
        {
        return this.time;
        }

这就是我想要检索它的方式:

    {
    ImageObject io;
    Iterator i = lstPageImages.iterator();

    while(i.hasNext())
        {
        io = new ImageObject(i.next());
        log.printDebug("name: "+io.name+" time: "+io.time);
        }
    }

有人有什么想法吗?非常感谢。

trscookie.

【问题讨论】:

  • 没有理由让你的图像对象通用,如果你不知道你正在传递什么样的对象,那么你不能马上用它做很多事情。您的 1stPageImages 集合包含什么类型的对象?
  • 嗨,为快速响应欢呼,不是我试图使对象通用,我只是不确定如何将迭代器中的值传递回 ImageObject 以便我的班级能够识别再次像这样:io = new ImageObject(i.next());所以我可以继续调用这个类,如下所示: log.printDebug("name: "+io.name+" time: "+io.time);
  • 那么您的 lstPageImages 列表中有哪些类型的对象?
  • 啊抱歉,只是字符串:private List lstPageImages = new ArrayList();啊刚刚意识到,我需要改变它来反映:io = new ImageObject("String", i); myList.add(io);
  • 所以,为了确保我理解您的要求,您想要获取Strings 中的ArrayList,并使用这些Strings 创建新的ImageObjects,将它们放入进入myList?

标签: java list object iterator


【解决方案1】:

啊,我想我想出了一个类似的解决方案:

private List lstPageImages = new ArrayList<ImageObject>();
...
io = (ImageObject)i.next();
            log.printDebug("name: "+io.name+" time: "+io.time);

为你的帮助干杯:D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    相关资源
    最近更新 更多