@SafeVarargs annotation was introduced in Java7 and can only be applied on:
- Final methods
- Static methods
- Constructors
- This annotation is used to ensure that the method/Constructors does not perform unsafe operations on its varargs parameters.
- From Java 9 onwards, it can also be used with private instance methods.
SafeVarargsTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
package com.kkjavatutorials.org; import java.util.ArrayList; import java.util.List; public class SafeVarargsTest { public static void main(String[] args) { List<String> nameList1 = new ArrayList<>(); nameList1.add("KK"); nameList1.add("PK"); nameList1.add("SK"); List<String> nameList2 = new ArrayList<>(); nameList2.add("MK"); nameList2.add("TK"); SafeVarargsTest safeVarargsTest = new SafeVarargsTest(); safeVarargsTest.loopingThrouth(nameList2); System.out.println("-------------------------"); safeVarargsTest.loopingThrouth(nameList1,nameList2); } @SafeVarargs private void loopingThrouth(List<String>...nameList) { for (List<String> list : nameList) { //System.out.println(list); for(String name:list) { System.out.println(name); } } } } |
If you run SafeVarargsTest.java as Java Application then it will give the below output:
1 2 3 4 5 6 7 8 |
MK TK ------------------------- KK PK SK MK TK |
That’s all about Java 9 SafeVarargs Annotation
You May Also Like:
Java 9 Jshell Tutorial
Java 9 private Methods in Interfaces
Java 9 Try with Resource Enhancement
Java 9 Collection Factory Methods
Java 9 Stream API improvements
If you have any feedback or suggestion please feel free to drop in below comment box.