TOC \o "1-3" Глава 2 PAGEREF _Toc122849198 \h 5
Автоупаковка и автораспаковка PAGEREF _Toc122849199 \h 5
Обзор оболочек типов и упаковки значений PAGEREF _Toc122849200 \h 5
Основы автоупаковки/распаковки PAGEREF _Toc122849201 \h 6
Автоупаковка и методы PAGEREF _Toc122849202 \h 7
Автоупаковка/распаковка в выражениях PAGEREF _Toc122849203 \h 8
Автоупаковка/распаковка логических и символьных значений PAGEREF _Toc122849204 \h 10
Помощь автоупаковки/распаковки в предупреждении ошибок PAGEREF _Toc122849205 \h 11
Предостережения PAGEREF _Toc122849206 \h 12
Глава 3 PAGEREF _Toc122849207 \h 12
Настраиваемые типы PAGEREF _Toc122849208 \h 12
Что такое настраиваемые типы PAGEREF _Toc122849209 \h 13
Простой пример применения настраиваемых типов PAGEREF _Toc122849210 \h 13
Средства настройки типов работают только с объектами PAGEREF _Toc122849211 \h 17
Различия настраиваемых типов, основанных PAGEREF _Toc122849212 \h 17
на разных аргументах типа PAGEREF _Toc122849213 \h 17
Как настраиваемые типы улучшают типовую безопасность PAGEREF _Toc122849214 \h 17
Настраиваемый класс PAGEREF _Toc122849215 \h 19
с двумя параметрами типа PAGEREF _Toc122849216 \h 19
Общий вид объявления настраиваемого класса PAGEREF _Toc122849217 \h 21
Ограниченные типы PAGEREF _Toc122849218 \h 21
Применение метасимвольных аргументов PAGEREF _Toc122849219 \h 23
Ограниченные метасимвольные аргументы PAGEREF _Toc122849220 \h 26
Создание настраиваемого метода PAGEREF _Toc122849221 \h 30
Настраиваемые конструкторы PAGEREF _Toc122849222 \h 32
Настраиваемые интерфейсы PAGEREF _Toc122849223 \h 33
Типы raw и разработанный ранее код PAGEREF _Toc122849224 \h 35
Иерархии настраиваемых классов PAGEREF _Toc122849225 \h 38
Использование настраиваемого суперкласса PAGEREF _Toc122849226 \h 38
Настраиваемый подкласс PAGEREF _Toc122849227 \h 40
Сравнения типов настраиваемой иерархии во время выполнения программы PAGEREF _Toc122849228 \h 41
Переопределенные методы в настраиваемом классе PAGEREF _Toc122849229 \h 42
Настраиваемые типы и коллекции PAGEREF _Toc122849230 \h 44
Стирание PAGEREF _Toc122849232 \h 47
Методы-подставки PAGEREF _Toc122849233 \h 48
Ошибки неоднозначности PAGEREF _Toc122849234 \h 50
Некоторые ограничения применения настраиваемых типов PAGEREF _Toc122849235 \h 51
Нельзя создавать объекты, используя параметры типа PAGEREF _Toc122849236 \h 51
Ограничения для статических членов класса PAGEREF _Toc122849237 \h 51
Ограничения для настраиваемого массива PAGEREF _Toc122849238 \h 52
Ограничение настраиваемых исключений PAGEREF _Toc122849239 \h 53
Заключительные замечания PAGEREF _Toc122849240 \h 53
Глава 4 PAGEREF _Toc122849241 \h 53
Вариант For-Each цикла for PAGEREF _Toc122849242 \h 53
Описание цикла for-each PAGEREF _Toc122849243 \h 53
Обработка многомерных массивов в цикле PAGEREF _Toc122849244 \h 56
Область применения цикла for в стиле for-each PAGEREF _Toc122849245 \h 57
Использование цикла for в стиле for-each для обработки коллекций PAGEREF _Toc122849246 \h 58
Создание объектов, реализующих интерфейс Iterable PAGEREF _Toc122849247 \h 59
Глава 5 PAGEREF _Toc122849250 \h 62
Аргументы переменной длины PAGEREF _Toc122849251 \h 62
Средство формирования списка с переменным числом аргументов PAGEREF _Toc122849252 \h 62
Перегрузка методов с аргументом переменной длины PAGEREF _Toc122849253 \h 65
Аргументы переменной длины и неоднозначность PAGEREF _Toc122849254 \h 66
Глава 6 PAGEREF _Toc122849255 \h 68
Перечислимые типы PAGEREF _Toc122849256 \h 68
Описание перечислимого типа PAGEREF _Toc122849257 \h 69
Методы values() и valueOf() PAGEREF _Toc122849258 \h 71
Перечислимый тип в Java — это класс PAGEREF _Toc122849259 \h 72
Перечислимые типы, наследующие тип enum PAGEREF _Toc122849260 \h 74
Глава 7 PAGEREF _Toc122849261 \h 78
Метаданные PAGEREF _Toc122849262 \h 78
Описание средства "метаданные" PAGEREF _Toc122849263 \h 78
Задание правил сохранения PAGEREF _Toc122849264 \h 79
Получение аннотаций во время выполнения программы с помощью рефлексии PAGEREF _Toc122849265 \h 79
Интерфейс AnnotatedElement PAGEREF _Toc122849266 \h 83
Использование значений по умолчанию PAGEREF _Toc122849267 \h 83
Аннотации-маркеры PAGEREF _Toc122849268 \h 85
Одночленные аннотации PAGEREF _Toc122849269 \h 86
Встроенные аннотации PAGEREF _Toc122849270 \h 87
Несколько ограничений PAGEREF _Toc122849271 \h 89
Глава 8 PAGEREF _Toc122849272 \h 89
Статический импорт PAGEREF _Toc122849273 \h 89
Описание статического импорта PAGEREF _Toc122849274 \h 89
Общий вид оператора статического импорта PAGEREF _Toc122849275 \h 91
Импорт статических членов классов, созданных Вами PAGEREF _Toc122849276 \h 91
Неоднозначность PAGEREF _Toc122849277 \h 93
Предупреждение PAGEREF _Toc122849278 \h 93
Глава 9 PAGEREF _Toc122849279 \h 94
Форматированный ввод/вывод PAGEREF _Toc122849280 \h 94
Форматирование вывода с помощью класса Formatter PAGEREF _Toc122849281 \h 94
Конструкторы класса Formatter PAGEREF _Toc122849282 \h 95
Методы класса Formatter PAGEREF _Toc122849283 \h 95
Основы форматирования PAGEREF _Toc122849284 \h 96
Форматирование строк и символов PAGEREF _Toc122849285 \h 98
Форматирование чисел PAGEREF _Toc122849286 \h 98
Форматирование времени и даты PAGEREF _Toc122849287 \h 99
Спецификаторы %n и %% PAGEREF _Toc122849288 \h 100
Задание минимальной ширины поля PAGEREF _Toc122849289 \h 101
Задание точности представления PAGEREF _Toc122849290 \h 102
Применение флагов форматирования PAGEREF _Toc122849291 \h 103
Выравнивание вывода PAGEREF _Toc122849292 \h 103
Флаги Space, +, 0 и ( PAGEREF _Toc122849293 \h 104
Флаг запятая PAGEREF _Toc122849294 \h 105
Флаг # PAGEREF _Toc122849295 \h 105
Применение верхнего регистра PAGEREF _Toc122849296 \h 105
Использование порядкового номера аргумента PAGEREF _Toc122849297 \h 106
Применение метода printf() языка Java PAGEREF _Toc122849298 \h 107
Класс Scanner PAGEREF _Toc122849299 \h 109
Конструкторы класса Scanner PAGEREF _Toc122849300 \h 109
Описание форматирования входных данных PAGEREF _Toc122849301 \h 110
Несколько примеров применения класса Scanner PAGEREF _Toc122849302 \h 112
Установка разделителей PAGEREF _Toc122849303 \h 116
Другие свойства класса Scanner PAGEREF _Toc122849304 \h 117
Глава 10 PAGEREF _Toc122849305 \h 118
Изменения в API PAGEREF _Toc122849306 \h 118
Возможность применения настраиваемых типов при работе с коллекциями PAGEREF _Toc122849307 \h 119
Обновление класса Collections PAGEREF _Toc122849308 \h 120
Почему настраиваемые коллекции PAGEREF _Toc122849309 \h 120
Модернизация других классов и интерфейсов для применения настраиваемых типов PAGEREF _Toc122849310 \h 121
Новые классы и интерфейсы, добавленные в пакет java. lang PAGEREF _Toc122849311 \h 121
Класс ProcessBulider PAGEREF _Toc122849312 \h 122
Класс StringBuilder PAGEREF _Toc122849313 \h 123
Интерфейс Appendable PAGEREF _Toc122849314 \h 123
Интерфейс Iterable PAGEREF _Toc122849315 \h 123
Интерфейс Readable PAGEREF _Toc122849316 \h 124
Новые методы побитной обработки классов Integer и Long PAGEREF _Toc122849317 \h 124
Методы signum() и reverseBytes() PAGEREF _Toc122849318 \h 125
Поддержка 32-битных кодовых точек для символов Unicode PAGEREF _Toc122849319 \h 126
Новые подпакеты пакета java. lang PAGEREF _Toc122849320 \h 126
java. lang.
annotation PAGEREF _Toc122849321 \h 126
java. lang.