現在、私は責任の連鎖のデザインパターンを研究しており、Eclipseを使用しています。
このコードをコンパイルしようとしていますが、「isLastを解決できないか、フィールドではありません」というコンパイルエラーが発生します。
public class OverFive implements Discount {
private Discount next; //
public boolean isLast = false;
public void setNext(Discount next, boolean Last) {
this.next = next;
this.next.isLast = Last; // Here is the error.
}
public double DoDiscount(Budget budget) {
if (budget.getValue() > 500) {
return budget.getValue() * 0.10;
}
if (this.next.isLast == false) {
return next.DoDiscount(budget);
}
else {
return 0;
}
}
}
そして今、ここにインターフェースがあります:
public interface Discount {
double DoDiscount(Orcamento orcamento);
void setNext(Discount next, boolean Last);
}