class 中的链表

LinkedList in a class

这是一个非常简单的代码,但无法弄清楚为什么我不能使用 LinkedList bp;

package Itens;

import java.util.LinkedList;

public class Mochila {
    LinkedList bp = new LinkedList();

    /* Syntax error */
    bp.add();
}

class Mochila 与 main 在不同的包中(Itens)。

您应该指定要添加到列表中的内容。

例如:

bp.add("abc");

并且最好不要使用原始的 LinkedList 类型。例如,如果列表应包含字符串,请使用 :

LinkedList<String> bp = new LinkedList<>();
bp.add ("abc");

您不能在 class 级别调用 bp.add();。指令应该在方法、构造函数或初始化块等代码块中调用(例如,如果方法被声明为抛出它们,您将能够处理潜在的异常)。

你还需要添加类似add(whatever)的东西(LinkedList中没有无参数方法add)。

另一件事是您应该使用泛型指定列表应包含的元素类型。更多信息请见 What is a raw type and why shouldn't we use it?

最后一件事是,如果您不打算使用任何仅存在于 LinkedList 中的方法,您应该通过使用更通用(甚至抽象)的参考 classes 或接口来使您的代码更加灵活.更多信息请见 What does it mean to "program to an interface"?

所以试试

public class Mochila {
    List<String> bp = new LinkedList<>();

    {// this initialization block will be added at start of each constructor
     // of your Mochila class
        bp.add("something");
    }
}