пробираюсь через онлайн-видео-урок по 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 / КОМПИЛЕРЕ