Je suis récemment tombé sur la java @SafeVarargs
annotation. En cherchant sur Google ce qui fait qu'une fonction variadique en Java n'est pas sûre, je suis resté plutôt perplexe (empoisonnement du tas ? types effacés ?), et j'aimerais donc savoir certaines choses :
-
Qu'est-ce qui fait qu'une fonction variadique de Java n'est pas sûre dans la
@SafeVarargs
sens (de préférence expliqué sous la forme d'un exemple approfondi) ? -
Pourquoi cette annotation est-elle laissée à la discrétion du programmeur ? N'est-ce pas quelque chose que le compilateur devrait être capable de vérifier ?
-
Existe-t-il une norme à laquelle il faut se conformer pour garantir que sa fonction est effectivement sûre pour les varags ? Si non, quelles sont les meilleures pratiques pour s'en assurer ?