РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
113 of 1163 menu

Аннотация SafeVarargs

Аннотация SafeVarargs применяется к методам и конструкторам, которые принимают переменное число аргументов (varargs) обобщённого типа. Она сообщает компилятору, что тело такого метода не выполняет потенциально небезопасных операций с массивом varargs, и подавляет предупреждение о возможном «загрязнении кучи» (heap pollution). Аннотация не имеет параметров.

Использование SafeVarargs возможно только для методов, объявленных как static, final или private, а также для конструкторов. Для обычных переопределяемых методов компилятор не позволит её применить.

Синтаксис

@SafeVarargs static <T> void methodName(T... args) { // тело метода }

Пример

Давайте создадим статический метод с varargs обобщённого типа и пометим его аннотацией SafeVarargs, чтобы компилятор не выдавал предупреждение:

import java.util.List; public class Main { @SafeVarargs static <T> void printAll(T... items) { for (T item : items) { System.out.println(item); } } public static void main(String[] args) { printAll("a", "b", "c"); printAll(1, 2, 3); } }

Результат выполнения кода:

"a" "b" "c" 1 2 3

Пример

Аннотацию SafeVarargs можно применять и к конструкторам с переменным числом аргументов:

import java.util.List; public class Main { private final List<Object> items; @SafeVarargs public Main(Object... items) { this.items = List.of(items); } public static void main(String[] args) { Main res = new Main("a", "b", "c"); System.out.println(res.items); } }

Результат выполнения кода:

[a, b, c]

Смотрите также

  • аннотация SuppressWarnings,
    которая подавляет предупреждения компилятора
  • аннотация FunctionalInterface,
    которая помечает функциональные интерфейсы
  • аннотация Override,
    которая указывает на переопределение метода
  • аннотация Deprecated,
    которая помечает устаревшие элементы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить