Поэтому у меня есть интерфейс:Интерфейс для изменяемого списка
public interface
{
List<String> getList();
}
Однако, я считаю, что реализатор может вернуть неизменяемый список как:
List<String> getList()
{
return Collections.unmodifiablelist(new ArrayList<String>());
}
Есть ли интерфейс, или способ чтобы гарантировать, что изменчивый список всегда возвращается. Я не хочу делать копию.
Попробуйте изменить это и создать копию, если она выбрасывает UnsupportedOperationException? Или вы можете просто потребовать 'getList()' возвращает 'ArrayList'. –
kennytm
Нет, вы можете _never_ остановить класс, который реализует ваш интерфейс, отбрасывая «RuntimeException», что и будет делать этот список. –
Документируйте существующий интерфейс, указав, что ожидается модифицируемый список. Исключение в противном случае .. – predi