Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

B Параметризация классов, интерфейсов и методов в Java



Параметризованный (generic) метод определяет базовый набор операций, которые будут применяться к разным типам данных, получаемых методом в

качестве параметра, и может быть записан, например, в виде:

<T extends Тип> returnType methodName(T arg) {}

<T> returnType methodName(T arg) {}

Описание типа должно находиться перед возвращаемым типом. Запись

первого вида означает, что в метод можно передавать объекты, типы которых

являются подклассами класса, указанного после extends. Второй способ

объявления метода никаких ограничений на передаваемый тип не ставит.

Generic-методы могут находиться как в параметризованных классах, так и в

обычных. Параметр метода может не иметь никакого отношения к параметру

своего класса. Метасимволы применимы и к generic-методам.

/* пример # 13: параметризованный метод: GenericMethod.java */

public class GenericMethod {

public static <T extends Number> byte asByte(T num) {

long n = num.longValue();

if (n >= -128 && n <= 127) return (byte)n;

else return 0;

}

public static void main(String [] args) {

System.out.println(asByte(7));

System.out.println(asByte(new Float("7.f")));

// System.out.println(asByte(new Character('7'))); // ошибка компиляции

}

}

Объекты типа Integer (int будет в него упакован) и Float являются

подклассами абстрактного класса Number, поэтому компиляция проходит без

затруднений. Класс Character не обладает вышеуказанным свойством, и его

объект не может передаваться в метод asByte(T num).

42. Хранение и обработка объектов. Интерфейсы коллекции: Collection, List, Set, Map.





Дата публикования: 2015-02-03; Прочитано: 2127 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...