Описание тега java-record

Записи предоставляют компактный синтаксис для объявления классов, которые являются прозрачными держателями неглубоко неизменяемых данных. Используйте этот тег для вопросов, связанных с синтаксисом и использованием записей в Java.
2 ответа

Конструктор по умолчанию с записью Java и BeanPropertyRowMapper не найден

Я играю с новой Java 14 и Spring Boot. Я использовал новую классную запись вместо обычного класса Java для держателей данных. public record City(Long id, String name, Integer population) {} Позже в своем классе обслуживания я использую Spring BeanPr…
13 мар '20 в 17:05
1 ответ

Записи Java и аннотация Lombok - IntelliJ

Просто пробую на практике java.lang.Record. Я просмотрел документацию и JEP-359 для некоторого понимания. Итак, прочитав о неявном объявлении конструктора, я подумал о том, чтобы смешать его с существующей библиотекой генерации кода - Lombok! В каче…
2 ответа

Определить конструктор по умолчанию для записи

У меня есть запись, и я хочу добавить к ней конструктор по умолчанию. public record Record(int recordId) { public Record { } } Но он создал конструктор с int парам. public final class Record extends java.lang.Record { private final int recordId; pub…
11 апр '20 в 08:02
3 ответа

Записи и массивы Java 14

Учитывая следующий код: public static void main(String[] args) { record Foo(int[] ints){} var ints = new int[]{1, 2}; var foo = new Foo(ints); System.out.println(foo); // Foo[ints=[I@6433a2] System.out.println(new Foo(new int[]{1,2}).equals(new Foo(…
17 апр '20 в 01:38
2 ответа

Как документировать параметры записи Java?

Как можно документировать параметры записи Java? Я имею в виду параметры, которые в конечном итоге становятся параметрами конструктора, полями класса. Я попытался: /** * @param name the name of the animal * @param age the age of the animal */ public…
26 апр '20 в 21:00
1 ответ

Функция предварительного просмотра "Записи" в IntelliJ 2020.1 с Java 14 завершается с ошибкой компилятора во время установки Maven, но в противном случае выполняется

Я пытаюсь использовать функцию JEP 359: Records (Preview) в Java с IntelliJ 2020.1.1 RC. Я определил такой класс: package work.basil.example; import java.time.LocalTime; public record LocalTimeRange(LocalTime start , LocalTime stop) { } Когда я запу…
28 апр '20 в 05:19
3 ответа

Вам нужно переопределить hashCode () и equals () для записей?

Предположим следующий пример: public record SomeRecord(int foo, byte bar, long baz) { } Мне нужно переопределить hashCode а также equals если бы я добавил указанный объект в HashMap?
11 май '20 в 01:33
5 ответов

Соглашение об именах получателей / установщиков Post Java-14

В Java 14 появилась функция записи. Запись создает получатель с тем же именем, что и поле, поэтому можно было бы написатьprint(person.name())например. Но старое соглашение о компонентах Java требует, чтобы этот метод называлсяgetName(). Использовани…
1 ответ

Использование записей Java 14 для общих (не связанных с данными) классов только с конечными полями

Учитывая простой класс с конечным полем, например String (см. пример ниже) или зависимости Spring, рекомендуется использовать запись Java 14, чтобы сделать ее более краткой и, возможно, удалить обработчики аннотаций, такие как Lombok? Согласно JEP, …
10 апр '20 в 11:11
4 ответа

Действительно ли записи Java экономят память по сравнению с аналогичным объявлением класса или они больше похожи на синтаксический сахар?

Я надеюсь, что записи Java 14 действительно используют меньше памяти, чем аналогичный класс данных. Они или память используют то же самое?
14 апр '20 в 16:07
4 ответа

Java Records StackOverflow RuntimeException

Я изучаю записи Java, функцию предварительного просмотра и получаю исключение Stackru, когда запускаю приведенный ниже фрагмент кода. import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class Example { publi…
3 ответа

Как я могу использовать записи Java в качестве DTO с ModelMapper?

Я занимаюсь рефакторингом своего кода. Я хочу использовать записи java вместо класса java в моем DTO. Чтобы преобразовать DTO в Entity, я использую ModelMapper (версия 2.3.5). Когда я пытаюсь получить информацию о пользователе (метод вызова co conve…
18 июн '20 в 20:07
0 ответов

MapStruct - Конвертер для возвращаемого значения типа не найден

Я хочу использовать записи из java 14 с сущностью (из сохраняемости java). Я пытаюсь сопоставить своего пользователя с userDto, и мой отладчик показывает, что все правильно сопоставлено. Но, к сожалению, я получил ошибку, когда хочу распечатать свой…
19 июн '20 в 18:56
3 ответа

Предполагается ли, что записи Java в конечном итоге станут типами значений?

В recordфункция предварительного просмотра (JEP 384), представленная в JDK 14, является большим нововведением. Они значительно упрощают создание простых неизменяемых классов, которые представляют собой чистую коллекцию значений без потери контекста,…
11 авг '20 в 08:44
1 ответ

Этот фрагмент компилируется? Я так не думаю, что Java 14 записей

В выходные я читал кое-что о предварительных версиях Java 14. Я не хотел задавать этот вопрос, потому что, похоже, это код Брайана Гетца, и все мы знаем, кто этот парень и что представляет собой экосистема Java, но с тех пор это крутилось в моей гол…
17 мар '20 в 00:47
7 ответов

Lombok getter/setter против записи Java 14

Мне нравится проект Lombok, но сейчас я читаю и пробую некоторые новые функции java 14. Внутри новой возможности есть ключевое слово record, которое позволяет создать класс с уже встроенными следующими функциями: конструктор, закрытые конечные поля,…
19 апр '20 в 18:20
1 ответ

Настройка стиля кода редактора IntelliJ для пробелов в круглых скобках, определяющих класс записей (JEP 359: Records (предварительная версия)) в Java 14?

Я использую IntelliJ 2020.1.1 RC, который, как предполагается, будет поддерживать функцию Records, предварительно просматриваемую в Java 14. (см. JEP 359: Records (Preview)) Я не могу найти настройку для помещения пробелов в круглые скобки определен…
0 ответов

Синтаксическая ошибка Java 14 для токена "запись", ожидается запись

Занимаюсь созданием чего-то на Java 14. Я написал класс с именем PersonInJava14, показанный ниже. package recordexample; public record PersonInJava14(String name, String gender, int age) {} Однако это вызывает такую ​​ошибку. Syntax error on token "…
03 апр '20 в 22:23
2 ответа

Значение "поверхностно неизменяемый" в документации Record в Java 14

Я читаю документацию Records и не понимаю термин "поверхностно неизменяемый". Что мы подразумеваем под " поверхностно неизменным"? А если он неизменен, зачем нам конструктор копирования? Почему два "Hello Worlds!"? Для всех классов записей должен вы…
28 май '20 в 07:41
1 ответ

Тип данных записи Java не работает для сетевого взаимодействия

Я думал, что новый тип данных Java Record в Java 14 должен подходить для передачи данных по сети, потому что данные не должны изменяться в процессе, который является основной особенностью типа данных записи - неизменяемым. Я использую тип данных в R…
14 июн '20 в 19:46