Как правильно вынести общую логику на Java в отдельный метод?

Пытаюсь вынести общую логику в отдельный метод isWinnerXandO, но не получается

public boolean isWinnerX() {
    return this.fillBy(Figure3T::hashMarkX, 0, 0, 1, 0) ||
        this.fillBy(Figure3T::hashMarkX, 0, 0, 1, 1) ||
        this.fillBy(Figure3T::hashMarkX, 0, 0, 1, 1) ||
        this.fillBy(Figure3T::hashMarkX, this.table.length - 1, 0, -1, 1)
}

public boolean isWinner0() {
    return this.fillBy(Figure3T::hashMark0, 0, 0, 1, 0) ||
        this.fillBy(Figure3T::hashMark0, 0, 0, 1, 1) ||
        this.fillBy(Figure3T::hashMark0, 0, 0, 1, 1) ||
        this.fillBy(Figure3T::hashMark0, this.table.length - 1, 0, -1, 1)
}

public boolean isWinnerXand0(boolean hasMark) {
    return this.fillBy(Figure3T::hashMark, 0, 0, 1, 0) ||
        this.fillBy(Figure3T::hashMark, 0, 0, 1, 1) ||
        this.fillBy(Figure3T::hashMark, 0, 0, 1, 1) ||
        this.fillBy(Figure3T::hashMark, this.table.length - 1, 0, -1, 1)
}

public boolean isWinnerX(boolean hasMarkX) {
    return isWinnerXand0(hasMarkX);
}

public boolean isWinner0(boolean hasMark0) {
    return isWinnerXand0(hasMark0);
}

Ответы (1 шт):

Автор решения: Sergei Buvaka

Так а зачем вы в общем методе вызывате Figure3T::hashMark?

public boolean isWinnerXand0(boolean hasMark) {
    return this.fillBy(hashMark, 0, 0, 1, 0) ||
        this.fillBy(hashMark, 0, 0, 1, 1) ||
        this.fillBy(hashMark, 0, 0, 1, 1) ||
        this.fillBy(hashMark, this.table.length - 1, 0, -1, 1)
}

И передавайте извне сюда параметр hasMark.

→ Ссылка