как узнать реализацию метода Set.retainAll(), да и других методов тоже
подскажите прописана ли где-то реализация данного метода? не понимаю почему иногда в Intellij IDE в справочной системе, или как она называется, есть реализация каких-то методов, а иногда просто сигнатура. в java doc просто описания без конкретного кода. Иногда очень интересно узнать как реализован тот или иной метод
Ответы (1 шт):
как узнать реализацию метода Set.retainAll()
retainAll() реализован в абстрактном классе AbstractCollection, и далее наследуется в AbstractSet, а HashSet в свою очередь наследует AbstractSet. Наследование позволяет не переопределяя метод родительского класса работать с ним как со своим.
почему иногда в Intellij IDE в справочной системе, или как она называется, есть реализация каких-то методов, а иногда просто сигнатура
Потому что вы когда вы видете только метод с сигнатурой - в частых случаях вы просто открываете интерфейс. Иногда можете попасться на нативный метод.
Чтобы увидеть реализацию, опять же, по вашему вопросу того же Set, то вам нужно провалиться не в интерфейс Set а в одну из его реализаций, например в HashSet.
Так вы провалитесь в реализацию методов Set в HashSet
HashSet<Object> set = new HashSet<>();
set.add(new Object());
А так в интерфейс Set
Set<Object> set = new HashSet<>();
set.add(new Object());
Или если вы попали в интерфейс, там IDE уже может подсказать где реализованы методы
