TGViewer
Java: fill the gaps Java: fill the gaps @java_fillthegaps · 12.3K subscribers
Post #170 4.38K
Records и немного теории

15 сентября выйдет java 15. Если вы отмечаете это событие интеллектуальной беседой под пиццу, то этот пост для вас. Здесь вы найдёте немного computer science на тему records.

Неизменяемые типы — основа функциональных языков. Записи — простые структуры, но за этой простотой стоит теоретический фундамент.

Система типов — теория, на основе которой проектируется язык программирования. Cегодня разберём классификацию, которая отвечает на вопрос:

❓Как определить тип объекта?

1️⃣ По имени. Тогда это номинальный тип

На основе имени проверяется возможность вызова методов и приведения типов друг к другу

record Point(int x,int y){}
record Time(int hours,int min){}

❌ Point p = new Time(1,1);

Записи по факту одинаковые — два целых числа. Но имена разные, поэтому типы между собой несовместимы. У номинальных типов проверки часто происходят на этапе компиляции.

2️⃣ По данным внутри объекта. Тогда это структурный тип.
Для них возможна запись:
✅ Point p = new Time(1,1);

Структурные типы используются в функциональных языках и java script. Они добавляют больше гибкости, но менее управляемы.

В java структурных типов нет и скорее всего не будет. В 2013 году обсуждалось, чтобы ввести в язык первый структурный тип под названием arrow type. Выглядел бы он так:

(String) → Integer

Идею отвергли из-за сложностей реализации и адаптации к существующим библиотекам. Альтернативное решение — лямбда-выражения, представляют похожую функциональность, но с чётко определённым типом:

Function<String,Integer> f = 
str → str.length();

Все структуры в java номинальные. Записи - не исключение. Номинальность была в требованиях для реализации, а в анонсе records называют nominal tuples — номинальные кортежи.
  • 👍 3
More from @java_fillthegaps
  1. Apr 30, 2026Get Your Hands Dirty on Clean Architecture: отзыв на книгу Когда я подняла тему чистой арх…
  2. Apr 27, 2026​Clean Architecture: отзыв на книгу Наконец-то дочитала книгу Clean Architecture Роберта М…
  3. Mar 4, 2026Как переиспользовать контекст в интеграционных тестах Сегодня расскажу базовый минимум для…
  4. Mar 4, 2026Post #660
  5. Mar 4, 2026Тестовый контекст поднимается 2 минуты. У нас 4 класса с интеграционными тестами, их конфи…
  6. Feb 25, 2026Чистая архитектура. Главы 3-5 Продолжаем спидран по Clean Architecture Роберта Мартина. ⭐️…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →