Annotation Processing в Java // бесплатный урок OTUS
🔥 5 фишек Java разработчика Ваш путь к становлению настоящим экспертом в мире программирования проходит через полное доверие к языку Java. Он используется миллионами разработчиков по всему миру, и сегодня мы покажем вам пять интересных и неочевидных вещей, которые сделают Java вашим любимым языком программирования. 1. Гибкость интерфейсов interface Vehicle { void start(); void stop(); default void honk() { System.out.println("Beep beep!"); } } class Car implements Vehicle { @Override public void start() { System.out.println("Car started."); } @Override public void stop() { System.out.println("Car stopped."); } } public class Main { public static void main(String[] args) { Car car = new Car(); car.start(); car.stop(); car.honk(); // Использование метода по умолчанию из интерфейса } } 2. Обработка исключений class CustomException extends Exception { public CustomException(String message) { super(message); } } public class Main { public static void main(String[] args) { try { // Бросаем исключение CustomException throw new CustomException("Something went wrong."); } catch (CustomException e) { System.out.println("Exception caught: " + e.getMessage()); } } } 3. Использование аннотаций import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation { String value() default ""; } public class Main { @MyAnnotation(value = "Example") public static void main(String[] args) { // Получаем аннотацию и выводим значение MyAnnotation annotation = Main.class.getAnnotation(MyAnnotation.class); System.out.println("Annotation value: " + annotation.value()); } } 4. Перечисляемые типы enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public class Main { public static void main(String[] args) { Day today = Day.TUESDAY; System.out.println("Today is " + today); } } 5. Лямбда-выражения import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); // Применение лямбда-выражения для удвоения значений списка numbers.replaceAll(n -> n * 2); System.out.println(numbers); // Выводит: [2, 4, 6] } } Подробнее @javarush
Создание пользовательских аннотаций в Java
Источник: Nuances of Programming В предыдущей статье мы говорили о том, что такое аннотации и как пользоваться готовыми аннотациями в Java. Но Java также дает возможность создавать собственные аннотации для улучшения кода. Чтобы сгенерировать любую пользовательскую аннотацию, необходимо использовать мета-аннотации. В этой статье объясняется, как создавать мета- и пользовательские аннотации и украшать ими объекты. Пользовательские аннотации Наряду со множеством предопределенных аннотаций в Java можно определять и собственные пользовательские аннотации...