Java SafeVarargs-Annotation, existiert ein Standard oder eine Best Practice?

Habe ich vor kurzem über java @SafeVarargs annotation. Googeln für was macht eine Variable Funktion in Java unsicher ließ mich ziemlich verwirrt (heap-Vergiftung? gelöscht Arten?), also ich würde gerne ein paar Dinge wissen:

  1. Was macht eine Variable Java-Funktion als unsicher @SafeVarargs Sinn (vorzugsweise erklärte in form einer in-depth-Beispiel)?
  2. Warum ist diese Anmerkung im Ermessen des Programmierers? Ist das nicht etwas, was der compiler sollte in der Lage sein zu überprüfen?
  3. Gibt es einige standard einhalten muss, um sicherzustellen, seine Funktion ist in der Tat varags sicher? Wenn nicht, was sind die besten Methoden, um sicherzustellen, dass es?
Kommentar zu dem Problem
Haben Sie gesehen, das Beispiel (und Erklärung) in JavaDoc? Kommentarautor: jlordo
Für die Dritte Frage, eine Praxis ist immer ein erstes element und der andere: retType myMethod(Arg ersten, Arg... andere). Wenn Sie nicht geben Sie , wird ein leeres array ist erlaubt, und Sie können sehr gut haben eine Methode mit dem gleichen Namen mit den gleichen Rückgabetyp der Einnahme keine Argumente, was bedeutet, dass die JVM wird eine harte Zeit, herauszufinden, welche Methode aufgerufen werden soll. Kommentarautor: fge
@jlordo ich Tat, aber ich verstehe nicht, warum Ihr in der varargs Kontext kann man leicht replecate diese situation außerhalb einer varargs-Funktion (überprüft dies, läßt sich mit dem erwarteten Typ Sicherheits-Warnungen und Fehler zur Laufzeit).. Kommentarautor: Oren

InformationsquelleAutor der Frage Oren | 2013-01-09

Schreibe einen Kommentar