Heim > Java > javaLernprogramm > Warum muss ich @SafeVarargs in Java 9 verwenden?

Warum muss ich @SafeVarargs in Java 9 verwenden?

王林
Freigeben: 2023-09-11 23:53:02
nach vorne
677 Leute haben es durchsucht

为什么在Java 9中需要使用@SafeVarargs?

Die Funktion „varargs“ wurde in Java eingeführt, um die Erstellung von Methoden mit einer variablen Anzahl von Parametern zu erleichtern, ohne auf Parameter vom Typ „Array“ oder überladene Versionen derselben Methode zurückgreifen zu müssen. Vor Java 9-Versionen gab es eine Warnmeldung, wenn die

vararg-Methode

mit Generika verwendet wurde. Obwohl nicht alle Methoden eine Haufenverschmutzung erzeugen, zeigt der Compiler eine Warnung für alle variadischen Methoden an, die mit Generika verwendet werden. Aus diesem Grund wurde in der Java 9-Version das @SafeVarargs-Konzept hinzugefügt, um diese Warnungen zu vermeiden. Wenn wir diese Anmerkung hinzufügen, stoppt der Compiler diese Warnungen. Wir können den Code mit dem folgenden Befehl kompilieren:

<strong>javac -Xlint:unchecked SafeVarargsTest1.java</strong>
Nach dem Login kopieren
Im folgenden Beispiel zeigt der Compiler dem Benutzer eine Warnmeldung an.

Beispiel

import java.util.Arrays;
import java.util.List;

public class SafeVarargsTest1 {
   public static void main(String args[]) {
      SafeVarargsTest1 test = new SafeVarargsTest1();
      test.<strong>varargsMethod</strong>(<strong>Arrays.asList</strong>("Adithya", "Jaidev"), Arrays.asList("Raja", "Chaitanya"));
   }
   private void varargsMethod(<strong>List<String></strong>... list) {
      for(List list1: list)
         System.out.println(list1);
   }
}
Nach dem Login kopieren

Ausgabe

<strong>SafeVarargsTest.java:7: warning: [unchecked] unchecked generic array creation for varargs parameter of type List[]
test.varargsMethod(Arrays.asList("Adithya", "Jaidev"), Arrays.asList("Raja", "Chaitanya"));
^
SafeVarargsTest.java:9: warning: [unchecked] Possible heap pollution from parameterized vararg type List
private void varargsMethod(List... list) {
^
2 warnings</strong>

<strong>[Adithya, Jaidev]
[Raja, Chaitanya]</strong>
Nach dem Login kopieren

Im folgenden Beispiel haben wir

@SafeVarargs

vor der

privaten Methode angewendet. Daher wird keine Warnmeldung angezeigt. Beispiel

import java.util.Arrays;
import java.util.List;

public class SafeVarargsTest2 {
   public static void main(String args[]) {
      SafeVarargsTest2 test = new SafeVarargsTest2();
      test.<strong>varargsMethod</strong>(Arrays.asList("Adithya", "Jaidev"), Arrays.asList("Raja", "Chaitanya"));
   }
   <strong>@SafeVarargs</strong>
   private void varargsMethod(<strong>List<String></strong>... list) {
      for(List list1: list)
         System.out.println(list1);
   }
}
Nach dem Login kopieren
Ausgabe

<strong>[Adithya, Jaidev]
[Raja, Chaitanya]</strong>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum muss ich @SafeVarargs in Java 9 verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage