आइए निम्नलिखित उदाहरण लें:
public class Test {
public void main(String[] args) {
int[] someInts = {1, 2, 5};
new Dummy(1, someInts, "Hello"); //works
new Dummy(1, new int[] {1, 2, 5}, "Hello"); //works
new Dummy(1, {1, 2, 5}, "Hello"); //fails
new Dummy(1, [1, 2, 5], "Hello"); //fails
}
public class Dummy {
Dummy(int someNumber, int[] someArray, String message) {
}
}
}
दोनों असफल लाइनों के लिए, एक्लिप्स कहता है: "कंस्ट्रक्टर टेस्ट। डमी (int, int, int, int, स्ट्रिंग) अपरिभाषित है"
सबसे पहले, मुझे समझ में नहीं आता कि यह सरणी को एक सरणी के रूप में कैसे पहचानता है (केवल असफल लाइनों में)।
दूसरे, मैं सरणी को सीधे कंस्ट्रक्टर में पास क्यों नहीं कर सकता, बल्कि इसे पारित करने के लिए एक चर बनाना होगा?
और तीसरा, क्या एक कंस्ट्रक्टर बनाने का एक तरीका है जो प्रश्न में उस रेखा की तरह कुछ लेता है, जिसका अर्थ है एक चर या new int[] {...}
कथन के बिना?
यदि किसी को शीर्षक में इसे तैयार करने का एक बेहतर तरीका पता है, तो इसे सुधारने के लिए स्वतंत्र महसूस करें।
2 जवाब
जैसा कि कहा गया है, कि आप सामान्य मामले में एक सरणी शाब्दिक कैसे बनाते हैं।
आप एक int... array
वेरिएग पैरामीटर के साथ सरणी को बदल सकते हैं, लेकिन फिर आपको इसे अंतिम पैरामीटर बनाने की आवश्यकता होगी।
Dummy(int someNumber, String message, int... someArray) {}
new Dummy(1, "Hello", 1, 2, 5);
new Dummy(1, {1, 2, 5}, "Hello");
, आप केवल सरणी आरंभीकरण के लिए {}
सिंटैक्स का उपयोग कर सकते हैं। new Dummy(1,new int[] {1, 2, 5}, "Hello");
का उपयोग करें
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।