【问题标题】:How can I append to this java linkedlist?如何附加到这个 java 链表?
【发布时间】:2021-07-11 00:30:23
【问题描述】:

我需要创建一个链表。我需要向类 UnsortedBulbList 添加一个方法以附加到链表。但是,我不断收到错误消息:找不到符号。我已经被困在这个问题上太久了......任何帮助将不胜感激!

'''

import java.util.Objects;

public class Bulb{
    private String manufacturer;
    private String partNumber;
    private int wattage;
    private int lumens;
    public Bulb(String m, String p, int w, int l){
        manufacturer = m;
        partNumber = p;
        wattage = w;
        lumens = l;

        }
    public String getManufacturer(){
        return manufacturer;
    }
    public String partNumber(){
        return partNumber;
    }
    public int wattage(){
        return wattage;
    }
    public int lumens(){
        return lumens;
    }
    public void setManufacturer(String m){
        if (m==null){
            throw new IllegalArgumentException("Bad manufacturer");
        }
        manufacturer = m;
    }
    public void partNumber(String p){
        if (p==null){
            throw new IllegalArgumentException("Bad partNumber");
        }
        partNumber = p;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Bulb)) return false;
        Bulb bulb = (Bulb) o;
        return wattage == bulb.wattage &&
                lumens == bulb.lumens &&
                manufacturer.equals(bulb.manufacturer) &&
                partNumber.equals(bulb.partNumber);
    }

    @Override
    public int hashCode() {
        return Objects.hash(manufacturer, partNumber, wattage, lumens);
    }

    public void wattage(int w){
        if (w<0){
            throw new IllegalArgumentException("Bad wattage");
        }
        wattage = w;
    }

    @Override
    public String toString() {
        return "Bulb{" +
                "manufacturer='" + manufacturer + '\'' +
                ", partNumber='" + partNumber + '\'' +
                ", wattage=" + wattage +
                ", lumens=" + lumens +
                '}';
    }

    public void lumens(int l){
        if (l<0){
            throw new IllegalArgumentException("Bad manufacturer");
        }
        lumens = l;

    }


}

public class BulbList {
    BulbNode first;
    BulbNode last;
    private int length;

    public BulbList () {
        BulbNode ln = new BulbNode();
        first = ln;
        last = ln;
        length = 0;
    }

    public void append (Bulb s) {
        BulbNode n = new BulbNode(s);
        last.next = n;
        last = n;
        length++;
    }

//    public LinkedListIterator reset()   {
//        return new LinkedListIterator(first.next);
//    }

}

public class UnsortedBulbList extends BulbList{
    public UnsortedBulbList(){
    }
    void add(Bulb u){

        u.append();
    }
}

'''

当我运行它时,我得到了错误: 找不到标志 符号:方法附加 位置:灯泡类型的变量 u

【问题讨论】:

  • 您还没有为Bulb 编写append 方法吗? BulbList 中有一个,但您在 Bulb 上调用 append
  • 您能告诉我们哪里错误吗?哪个对象/方法?你能在这条线上发表一个大评论吗?谢谢。
  • Bulb、Bulblist 和 UnsortedBulbList 位于不同的文件中。错误出现在 UnsortedBulbList 第 6 行 java:找不到符号符号:方法 append() 位置:Bulb 类型的变量 s
  • Bulb 有append() 方法吗?您不应该将灯泡附加到 BulbList 吗?

标签: java class linked-list append extends


【解决方案1】:

这里的错误是你试图使用 Bulb 类的 append 方法,该方法不存在。相反,我认为您想调用父类的 append 方法,例如:

public class UnsortedBulbList extends BulbList{
    public UnsortedBulbList(){
    }
    void add(Bulb u){

        super.append(u);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-18
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 2017-07-07
    • 2023-03-26
    相关资源
    最近更新 更多