Запись шаблонов в Java без экземпляра или переключателя ⇐ JAVA
-
Гость
Запись шаблонов в Java без экземпляра или переключателя
Шаблоны записей Java 21 обещают введение деструктуризации в язык Java. Однако, похоже, он тесно связан с сопоставлением с образцом, которое можно использовать только как часть сравнения instanceof или в операторах/выражениях switch.
Рассмотрим следующую запись.
публичная запись Point(int x, int y) {} Есть ли способ деструктурировать объект этого конкретного типа без использования instanceof или switch? Следующие попытки деструктурируют point. Но этот код не имеет особого смысла, поскольку ни instanceof, ни switch не являются необходимыми, если мы предполагаем нулевую безопасность.
Точка point = new Point(0, 0); // деструктуризация с помощью экземпляра if (point instanceof Point(int x, int y)) { System.out.printf("Точка в (%d,%d)", x, y); } // деструктуризация с помощью переключателя переключатель (точка) { case Point(int x, int y) -> System.out.printf("Точка в (%d,%d)", x, y); } Спасибо за вашу информацию.
Шаблоны записей Java 21 обещают введение деструктуризации в язык Java. Однако, похоже, он тесно связан с сопоставлением с образцом, которое можно использовать только как часть сравнения instanceof или в операторах/выражениях switch.
Рассмотрим следующую запись.
публичная запись Point(int x, int y) {} Есть ли способ деструктурировать объект этого конкретного типа без использования instanceof или switch? Следующие попытки деструктурируют point. Но этот код не имеет особого смысла, поскольку ни instanceof, ни switch не являются необходимыми, если мы предполагаем нулевую безопасность.
Точка point = new Point(0, 0); // деструктуризация с помощью экземпляра if (point instanceof Point(int x, int y)) { System.out.printf("Точка в (%d,%d)", x, y); } // деструктуризация с помощью переключателя переключатель (точка) { case Point(int x, int y) -> System.out.printf("Точка в (%d,%d)", x, y); } Спасибо за вашу информацию.
Мобильная версия