簡體   English   中英

如何修復:令牌上的語法錯誤、錯位的構造錯誤

[英]How to fix: Syntax error on token(s), misplaced construct(s) Error

通過在線 Java 視頻教程按我的方式工作,但遇到了一些麻煩。 教程涉及我幾乎沒有經驗的復合設計模式。 前兩個教程進展順利,第三個給我帶來了問題。 我已經向教程的講師/創建者尋求幫助,但沒有得到回復。 編碼示例與“打開盒子”有關,這是我為每個類/接口編寫的代碼:

禮物:

package composite;

public class Gift implements SurpriseBox {

    private String giftName;

    public Gift(String name) {
        this.giftName = name;
    }
    public void unWrap() {
        System.out.println("Unwrapping gift: " + this.giftName);
    }

}

驚喜盒:

package composite;

public interface SurpriseBox {

    void unWrap();

}

驚喜禮盒

package composite;

import java.util.ArrayList;

public class GiftSurpriseBox implements SurpriseBox {

    private ArrayList<SurpriseBox> surpriseBoxes;

    public GiftSurpriseBox() {
        this.surpriseBoxes = new ArrayList<>();

    }

    public void add(SurpriseBox box){
        this.surpriseBoxes.add(box);
    }

    public void remove(SurpriseBox box) {
        this.surpriseBoxes.remove(box);
    }

    public void unWrap() {
        surpriseBoxes.forEach(SurpriseBox::unWrap);
    }

}

SurpriseBox 類,尤其是最后一行代碼是我遇到問題的地方

客戶:

package composite;

public class Client {
    public static void main(String[] args) {
        GiftSurpriseBox giftBox = new GiftSurpriseBox();
        GiftSurpriseBox subGiftBox = new GiftSurpriseBox();

        Gift gift = new Gift("Toy Car");
        Gift gift2 = new Gift("Toy Plane");

        giftBox.add(gift);
        subGiftBox.add(gift2);

        giftBox.add(subGiftBox);

        giftBox.unWrap();
    }

}

我相信,由於對這里的想法是您正在創建禮物並將它們放入盒子中的主題知之甚少,SurpriseBox 具有子盒子,並且復合模式允許當您為父文件中的每個包裹調用 unwrap 時被打開。

使用 ECLIPSE JUNO 並收到以下錯誤消息:

令牌上的語法錯誤,錯位的構造 令牌“:”上的語法錯誤,在此令牌后應為 EnhancedForStatementHeaderInit

不確定這是否與我的 JRE 有關,因為教程的創建者沒有提供有關他的 JRE/編譯器的信息

問題是我使用的 ECLIPSE IDE。 我已經更新到 Photon 並且一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM