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