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

Программисты JAVA общаются здесь
Ответить
Anonymous
 Записи и массивы Java 14

Сообщение Anonymous »

Учитывая следующий код:

Код: Выделить всё

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(new int[]{1,2}))); // false
System.out.println(new Foo(ints).equals(new Foo(ints))); //true
System.out.println(foo.equals(foo)); // true
}
Очевидно, что в массиве используются методы toString, Equals (вместо статических методов Arrays::equals ,

Код: Выделить всё

Arrays::deepEquals
или Array::toString).

Поэтому я думаю, что записи Java 14 (JEP 359) не слишком хорошо работают с массивами, соответствующие методы должны быть сгенерированы с помощью IDE (которая, по крайней мере, в IntelliJ, по умолчанию генерирует «полезные» методы, т.е. они используют статические методы в массивах).

Или есть какое-то другое решение?

Подробнее здесь: https://stackoverflow.com/questions/612 ... and-arrays
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»