Проект Amber
Цель проекта Amber — исследовать и развивать небольшие возможности языка Java, повышающие продуктивность, которые были приняты как JEP в статусе Candidate (кандидат) в процессе JEP в OpenJDK. Спонсор проекта — Compiler Group.
Большинство возможностей проекта Amber проходят как минимум два раунда Preview (предварительная версия), прежде чем стать официальной частью платформы Java. Для каждой возможности есть отдельные JEP для каждого раунда Preview и для окончательной стандартизации.
Статус JEP
В работе:
-
530: Primitive Types in Patterns (примитивные типы в шаблонах),
instanceof, andswitch(предыдущие: 507, 455, 488)
Выпущены:
- 513: Flexible Constructor Bodies (версии Preview: 447, 482, 492)
- 512: Compact Source Files (компактные исходные файлы) and Instance Main Methods (версии Preview: 445, 463, 477, 495)
- 511: Module Import Declarations (версии Preview: 476, 494)
- 458: Launch Multi-File Source-Code Programs
- 456: Unnamed Variables and Patterns (версия Preview: 433)
- 441: Pattern Matching (сопоставление с образцом) for
switch(версии Preview: 406, 420, 427, 433) - 440: Record Patterns (версии Preview: 405, 432)
- 409: Sealed Classes (версии Preview: 360, 397)
- 395: Records (версии Preview: 359, 384)
- 394: Pattern Matching for
instanceof(версии Preview: 305, 375) - 378: Text Blocks (версии Preview: 355, 368)
- 361: Switch Expressions (версии Preview: 325, 354)
- 323: Local-Variable Syntax for Lambda Parameters
- 286: Local-Variable Type Inference (
var)
Приостановлены:
- 301: Enhanced Enums (пояснение см. здесь)
- 302: Lambda Leftovers
- 348: Java Compiler Intrinsics for JDK APIs
Отозваны:
- 465: String Templates (Third Preview) (пояснение см. здесь)
- 326: Raw String Literals, отменён в пользу Text Blocks (пояснение см. здесь)
Документы
- Руководства
- Preparing for Change: Safe Switching over Sealed APIs (август 2026)
- Programmer’s Guide to Text Blocks (август 2019)
- Local Variable Type Inference FAQ (октябрь 2018)
- Local Variable Type Inference Style Guide (март 2018)
- Проектные заметки
- Data-Oriented Programming for Java: Beyond Records (январь 2026)
- String Tapas Redux: Beyond Mere String Interpolation (сентябрь 2021)
- Towards Better Serialization (июнь 2019)
- Data Classes and Sealed Types for Java (февраль 2019)
- Symbolic References for Constants (март 2018)
- Pattern Matching
- Towards Member Patterns (январь 2024)
- Patterns: Exhaustiveness, Unconditionality, and Remainder (май 2023)
- Pattern Matching in the Java Object Model (декабрь 2020)
- Type Patterns in
switch(сентябрь 2020) - Pattern Matching for Java — Semantics (август 2020)
- Pattern Matching for Java (сентябрь 2018)
- Pattern Matching for Java — Runtime and Translation (июнь 2017)
- Extending
switchfor Pattern Matching (апрель 2017)
- Исторические заметки
- Data Classes for Java (февраль 2018)
- Data Classes for Java (октябрь 2017)
Сообщество
- Участники
- Рассылки
- amber-dev — для технических обсуждений, связанных с проектом Amber
- amber-spec-experts — только для членов экспертной группы
- amber-spec-observers — копия amber-spec-experts только для чтения
- amber-spec-comments — для отправки комментариев к официальным спецификациям
- Другие ресурсы