Если исходить из решения задачи, то получается, что мы рекурсивно вызываем те же самые методы и так по кругу до бесконечности, пока стек не переполнится. Или я что-то не понимаю? И ещё такой момент, в конструктор мы передаём "объект" интерфейса, что уже является бредом по смыслу, мы просто не сможем даже создать объект нашего класса с таким параметром. Поделитесь мыслями кто как считает? Вообще задачу я решил, можете не обращать внимания на ошибки в моём коде, не отправлял повторно на валидацию просто, но мне хотелось бы пояснений.
Но, что бы вам было проще, в моём коде нужно поправить два метода:
@Override
public String getHeaderText() {
return tableInterface.getHeaderText().toUpperCase();
}
@Override
public void setHeaderText(String newHeaderText) {
tableInterface.setHeaderText(newHeaderText);
}
Ну и удалить строку headerText можно
package com.javarush.task.task18.task1815;
import java.sql.SQLException;
import java.sql.Wrapper;
import java.util.ArrayList;
import java.util.List;
/*
Таблица
*/
public class Solution {
public class TableInterfaceWrapper implements TableInterface {
public TableInterface tableInterface;
String headerText;
public TableInterfaceWrapper(TableInterface tableInterface) {
this.tableInterface = tableInterface;
}
@Override
public void setModel(List rows) {
System.out.println(rows.size());
tableInterface.setModel(rows);
}
@Override
public String getHeaderText() {
return headerText.toUpperCase();
}
@Override
public void setHeaderText(String newHeaderText) {
headerText = newHeaderText;
}
}
public interface TableInterface {
void setModel(List rows);
String getHeaderText();
void setHeaderText(String newHeaderText);
}
public static void main(String[] args) {
}
}