द varargs जावा में कार्यक्षमता को सरणी-प्रकार का सहारा लिए बिना तर्कों की एक चर संख्या के साथ विधियों के निर्माण की सुविधा के लिए पेश किया गया है। पैरामीटर या एक ही विधि के अतिभारित संस्करण।
Java 9 संस्करणों से पहले, यदि vararg विधियां जेनेरिक . के साथ उपयोग किया जाता है , तो एक चेतावनी संदेश . है . भले ही सभी तरीके ढेर प्रदूषण . नहीं बनाते हैं , कंपाइलर चेतावनी shows दिखाता है जेनरिक के साथ उपयोग की जाने वाली सभी vararg विधियों के लिए। यही कारण है @SafeVarargs इन चेतावनियों से बचने के लिए जावा 9 संस्करण में अवधारणा को जोड़ा गया था। अगर हम इस एनोटेशन को जोड़ते हैं, तो कंपाइलर इन चेतावनियों को रोक देता है।
हम नीचे दिए गए कमांड का उपयोग करके कोड को संकलित कर सकते हैं
javac -Xlint:unchecked SafeVarargsTest1.java
नीचे दिए गए उदाहरण में, कंपाइलर उपयोगकर्ता को एक चेतावनी संदेश दिखाता है।
उदाहरण
आयात करें परीक्षण.varargsMethod (Arrays.asList ("आदित्य", "जयदेव"), Arrays.asList ("राजा", "चैतन्य")); } निजी शून्य varargsMethod(सूची<स्ट्रिंग> ... सूची) { के लिए (सूची सूची 1:सूची) System.out.println (सूची 1); }}आउटपुट
SafeVarargsTest.java:7:चेतावनी:[अनचेक] प्रकार के varargs पैरामीटर के लिए अनियंत्रित जेनेरिक सरणी निर्माण List[]test.varargsMethod(Arrays.asList("Adithya", "Jaidev"), Arrays.asList( "राजा", "चैतन्य")); ^ SafeVarargsTest.java:9:चेतावनी:[अनियंत्रित] पैरामीटरयुक्त vararg प्रकार से संभावित ढेर प्रदूषण Listprivate void varargsMethod(List... list) {^2 चेतावनियां [आदित्य, जयदेव][राजा, चैतन्य]
मैं नीचे दिए गए उदाहरण में, हमने @SafeVarargs . लागू किया है निजी तरीके . से पहले . इसलिए, यह कोई चेतावनी संदेश नहीं दिखाता है।
उदाहरण
आयात करें परीक्षण.varargsMethod (Arrays.asList ("आदित्य", "जयदेव"), Arrays.asList ("राजा", "चैतन्य")); } @SafeVarargs निजी शून्य varargsMethod(सूची<स्ट्रिंग> ... सूची) { के लिए (सूची सूची 1:सूची) System.out.println (सूची 1); }}आउटपुट
[आदित्य, जयदेव][राजा, चैतन्य]