Необязательный метод в интерфейсе коллекции

Что означает «необязательно» в этом контексте?

public interface Collection<E> extends Iterable<E> 
{
 // Basic operations
   int size();
   boolean isEmpty();
   boolean contains(Object element);
 // optional

Комментарий последней строки "//необязательный": что это значит? Я попытался реализовать коллекцию, реализовав ее public class Col-implementation implements Collection, и это вовсе не обязательно.

Мне нужно реализовать все методы, даже те, которые прокомментированы как «необязательные». Я явно не понимаю, что они имеют в виду под «необязательно». Любое понимание этого?


person Rollerball    schedule 29.06.2013    source источник
comment
Ehi Rollerball Ваш вопрос уже задавали здесь! stackoverflow.com/questions/10572643/< /а>   -  person Rollerball    schedule 29.06.2013


Ответы (2)


Вы должны предоставить реализацию, но эта реализация может вызвать ошибку UnsupportedOperationException.

person Peter Lawrey    schedule 29.06.2013

В этом контексте optional означает, что не все Collection<E> могут делать что-то полезное в реализации. Хотя реализация действительно обязательна, можно throw исключение, указывающее, что метод не реализован.

person Sergey Kalinichenko    schedule 29.06.2013