0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Методы, работающие с обобщенными типами, называются обобщенными методами. В предыдущих уроках мы разбирали тип Pair, в котором все методы именно такие:</p>
1
<p>Методы, работающие с обобщенными типами, называются обобщенными методами. В предыдущих уроках мы разбирали тип Pair, в котором все методы именно такие:</p>
2
<p>В отличие от самого класса, работа с такими методами не требует указания параметра типа, так как он уже был задан при создании объекта.</p>
2
<p>В отличие от самого класса, работа с такими методами не требует указания параметра типа, так как он уже был задан при создании объекта.</p>
3
<p>Дженерики могут выступать в качестве параметров типа. Как в качестве параметров метода, так и возвращаемого значения. Для демонстрации реализуем два метода.</p>
3
<p>Дженерики могут выступать в качестве параметров типа. Как в качестве параметров метода, так и возвращаемого значения. Для демонстрации реализуем два метода.</p>
4
<p><strong>copy()</strong>- метод, который создает и возвращает наружу копию пары. Пример использования:</p>
4
<p><strong>copy()</strong>- метод, который создает и возвращает наружу копию пары. Пример использования:</p>
5
<p>Реализация:</p>
5
<p>Реализация:</p>
6
<p><strong>replaceWith()</strong>, который заменяет содержимое пары данными из пары, переданной как параметр. Пример использования:</p>
6
<p><strong>replaceWith()</strong>, который заменяет содержимое пары данными из пары, переданной как параметр. Пример использования:</p>
7
<p>Реализация:</p>
7
<p>Реализация:</p>
8
<p>В одном случае дженерик выступал в качестве параметра, в другом в качестве возвращаемого значения. Все это можно использовать одновременно, причем в совершенно разных конфигурациях, вкладывая дженерики друг в друга настолько насколько нужно. Иногда получаемые конструкции настолько сложны, что понадобится немало времени на их понимание. К счастью, большая часть такого кода находится внутри библиотек, которые уже написаны.</p>
8
<p>В одном случае дженерик выступал в качестве параметра, в другом в качестве возвращаемого значения. Все это можно использовать одновременно, причем в совершенно разных конфигурациях, вкладывая дженерики друг в друга настолько насколько нужно. Иногда получаемые конструкции настолько сложны, что понадобится немало времени на их понимание. К счастью, большая часть такого кода находится внутри библиотек, которые уже написаны.</p>
9
<h2>Параметры типов у методов</h2>
9
<h2>Параметры типов у методов</h2>
10
<p>У обобщенных методов могут быть свои параметры типов, которых нет в классе. Это бывает нужно, когда мы хотим работать с параметром метода, тип которого может отличаться от параметра типа класса. В таком случае, в определение метода добавляется кусок кода с угловыми скобками перед типом возвращаемого значения.</p>
10
<p>У обобщенных методов могут быть свои параметры типов, которых нет в классе. Это бывает нужно, когда мы хотим работать с параметром метода, тип которого может отличаться от параметра типа класса. В таком случае, в определение метода добавляется кусок кода с угловыми скобками перед типом возвращаемого значения.</p>
11
<p>Использование:</p>
11
<p>Использование:</p>
12
<p>Более того, обобщенные методы могут присутствовать в классах, которые не являются дженериками.</p>
12
<p>Более того, обобщенные методы могут присутствовать в классах, которые не являются дженериками.</p>
13
13