如何解决:令牌语法错误,构造错误放置错误

时间:2018-09-17 21:02:08

标签: java composite

通过在线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);
    }

}

SurpriseBox:

package composite;

public interface SurpriseBox {

    void unWrap();

}

GiftSurpriseBox

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带有子盒子,并且当您为父母内部的每个包装呼叫拆包时,复合模式都允许

使用ECLIPSE JUNO并收到以下错误消息:

令牌语法错误,构造放置错误 令牌“:”的语法错误,此令牌后应为EnhancedForStatementHeaderInit

不能确定是否与我的JRE有关,因为补习的创建者没有得到有关JRE / COMPILER的信息

1 个答案:

答案 0 :(得分:0)

问题是我使用的ECLIPSE IDE。我已经更新到Photon,并且一切正常。