मैं उस प्रकार के एक सरणी में एक प्रकार का एक varargs को बदलने के लिए util विधि का एक प्रकार है - यह इस तरह दिखता है:क्या varargs का यह उपयोग सुरक्षित है?
public K[] array(K... ks) {
return ks;
}
उपयोग के मामले तो यह है कि बजाय जब एक विधि बुला एक सरणी को परिभाषित जिसके लिए एक सरणी की आवश्यकता होती है, आप केवल सरणी (val1, val2, val3) कर सकते हैं।
हालांकि, इंटेलिजे मुझे प्रदूषण चेतावनी ढेर देता है। मैं समझता हूं कि इसका मतलब क्या है, लेकिन मुझे विनिर्देशों के साथ अधिक अनुभव नहीं है - इसलिए, मैं जानना चाहता हूं कि मैं @ सेफ वर्गार्ग जोड़ सकता हूं और क्या यह विधि वास्तव में सुरक्षित है या नहीं।
इंटेलीजे का कहना है:
समस्या सार संभव ढेर लाइन पर पैरामिट्रीकृत vararg प्रकार से प्रदूषण 249
समस्या समाधान अंतिम करें और व्याख्या के रूप में @SafeVarargs
कश्मीर के रूप में घोषित किया जाता है वी।
IMO आप इस तरह के विधि की जरूरत नहीं है, बस का उपयोग 'जो कुछ भी [] whateverArray = {VAL1, val2, val3, ...};' –
आप ढेर प्रदूषण चेतावनी के * सटीक * जानकारी दे सकते हैं? और टाइप पैरामीटर 'के' घोषित कहां है? –
@ लुइगी, हाँ, लेकिन यह एक उपयोगिता है। 'के [] कुंजी = {key1, key2, key3}; object.method (कुंजी); 'बनाम 'object.method (सरणी (key1, key2, key3));' - दूसरा लिखना बहुत आसान है, खासकर जब आप इसे बहुत कुछ कर रहे हैं। – DziNeIT