有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java双链接列表getData问题

我的双链接列表getData方法有问题。getData方法在我的迭代器中,但它的行为就像该方法一样不存在

    if (USE_LINKED_LIST)
    {
        for (int i = 0; i < this.linked_list.size(); i++)
        {
            Movable current = this.linked_list.getData();
            current.paint(graphics);
        }
    }
    else
    {
        for (int i = 0; i < this.array.size(); i++)
        {
            Movable current = this.array.get(i);
            current.paint(graphics);
        }
    }

正如您在这段代码中所看到的,我试图调用它。链表。getData()但是它的行为就像没有这样的方法一样

 public AnyType getData()
    {
        //Gets the data inside the currentNode
        return currentNode.getData();
    }

然而,这是迭代器中的getData方法。在下一个代码段中,我遇到了相同的getData()问题

if (USE_LINKED_LIST)
    {
        for(int i =0; i < this.linked_list.size(); i++ )
        {
            Movable current = this.linked_list.getData();
            current.move(frame_rate_duration);

            if(current.dead())
            {
                this.linked_list.remove(current);
                i--;
            }

        }
    }
    else
    {
        for (int i = 0; i < this.array.size(); i++)
        {
            Movable current = this.array.get(i);
            current.move(frame_rate_duration); // move for 1/100 of a second simulated time

            if (current.dead())
            {
                this.array.remove(i);
                i--; // go back one spot so we don't skip an item
            }
        }
    }

我只是想知道我是否需要更改for循环??或者如果我需要更改getData()方法


共 (1) 个答案

  1. # 1 楼答案

    this.linked_list声明为什么?很难从您的描述中分辨出来,但是我想知道,您的链表类是否公开了getData方法,继承了您的接口,而该接口没有所述方法,并且您正在通过该接口引用链表

    如果是这种情况,那么您需要将您的链接列表转换为适当的类型,或者我认为最好是将其直接声明为您的类型/子类

    当然,这都是基于您的注释“它的行为就像没有这样的方法一样”,这意味着您收到一个编译器错误,表明在您的链表类中没有这样的方法

    其他可能性:

    • 您的类与另一个(可能是默认)类共享一个名称,并且导入了错误的类
    • IDE没有正确地刷新/构建所有类(因此正在使用没有getData方法的旧版本)