如何修复:令牌语法错误,错误放置的构造错误
How to fix: Syntax error on token(s), misplaced construct(s) Error
通过在线 java 视频教程,运行 遇到了一些麻烦。教程涉及我经验不足的复合设计模式。前两个教程进展顺利,第三个教程给我带来了问题。我已向 instructor/creator 的教程寻求帮助,但没有得到回复。编码示例与 "unwrapping boxes" 有关,这是我每个 class/interface:
的代码
礼物:
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 class 特别是最后一行代码是我 运行 遇到问题的地方
客户:
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 有 children 个盒子,当您为每个包裹调用 unwrap 时,复合模式允许在 parents 内展开。
使用 ECLIPSE JUNO 并收到以下错误消息:
令牌语法错误,错误放置的结构
令牌“:”的语法错误,EnhancedForStatementHeaderInit 预计在此令牌后
不确定这是否与我的 JRE 有关,因为教程的创建者没有提供关于他的 JRE/COMPILER[=37 的信息=]
问题出在我使用的 ECLIPSE IDE 上。我已经更新到 Photon,一切正常。
通过在线 java 视频教程,运行 遇到了一些麻烦。教程涉及我经验不足的复合设计模式。前两个教程进展顺利,第三个教程给我带来了问题。我已向 instructor/creator 的教程寻求帮助,但没有得到回复。编码示例与 "unwrapping boxes" 有关,这是我每个 class/interface:
的代码礼物:
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 class 特别是最后一行代码是我 运行 遇到问题的地方
客户:
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 有 children 个盒子,当您为每个包裹调用 unwrap 时,复合模式允许在 parents 内展开。
使用 ECLIPSE JUNO 并收到以下错误消息:
令牌语法错误,错误放置的结构 令牌“:”的语法错误,EnhancedForStatementHeaderInit 预计在此令牌后
不确定这是否与我的 JRE 有关,因为教程的创建者没有提供关于他的 JRE/COMPILER[=37 的信息=]
问题出在我使用的 ECLIPSE IDE 上。我已经更新到 Photon,一切正常。