Недавно я встретил аннотацию java @SafeVarargs. Googling для того, что делает вариационную функцию в Java небезопасной, оставил меня довольно запутанным (ядовитые типы?), Поэтому я хотел бы знать несколько вещей:
-
Что делает переменную функцию Java небезопасной в смысле @SafeVarargs (желательно, объясняется в виде подробного примера)?
-
Почему эта аннотация оставлена на усмотрение программиста? Разве это не то, что компилятор должен проверить?
-
Есть ли какой-то стандарт, который должен придерживаться, чтобы гарантировать, что его функция действительно безопасна? Если нет, то каковы наилучшие методы его обеспечения?