मुझे जावा के सरणी के बारे में समझ में नहीं आता है। यह एक मामले में एक सरणी को परिभाषित करने से मना करता है लेकिन एक ही परिभाषा को दूसरे में अनुमति देता है।घुंघराले ब्रेसिज़ का उपयोग कर जावा में एक बहुआयामी सरणी को परिभाषित करने के लिए कैसे?
ट्यूटोरियल से उदाहरण:
String[][] names = {
{"Mr. ", "Mrs. ", "Ms. "},
{"Smith", "Jones"}
};
System.out.println(names[0][0] + names[1][0]); // the output is "Mr. Smith";
मेरे उदाहरण:
public class User {
private static String[][] users;
private static int UC = 0;
public void addUser (String email, String name, String pass) {
int i = 0;
// Here, when I define an array this way, it has no errors in NetBeans
String[][] u = { {email, name, pass}, {"[email protected]", "jack sparrow", "12345"} };
// But when I try to define like this, using static variable users declared above, NetBeans throws errors
if (users == null) {
users = { { email, name, pass }, {"one", "two", "three"} }; // NetBeans even doesn't recognize arguments 'email', 'name', 'pass' here. Why?
// only this way works
users = new String[3][3];
users[i][i] = email;
users[i][i+1] = name;
users[i][i+2] = pass;
UC = UC + 1;
}
}
गलतियों NetBeans द्वारा फेंका हैं:
अभिव्यक्ति की अवैध शुरू,
" , " अपेक्षित,
कोई बयान नहीं है।
और यह भी तर्क email
, name
, pass
users
सरणी की परिभाषा में नहीं पहचानता है। लेकिन जब मैं u
सरणी परिभाषित करता हूं तो उन्हें पहचानता है।
इन दो परिभाषाओं के बीच क्या अंतर है? क्यों काम करता है लेकिन एक और परिभाषित एक और तरीका नहीं है?
लेकिन मेरे पास है यह पहले से ही किया है। "पब्लिक क्लास यूजर {" की रेखा से नीचे की रेखा "निजी स्थैतिक स्ट्रिंग [] [] उपयोगकर्ता" – Green
@ ग्रीन है 'नया स्ट्रिंग [] []' भाग तब लागू होता है जब आप प्रारंभिकरण और घोषणा को जोड़ते हैं; जब आप एक स्थान या एक चर को एक स्थान पर घोषित करते हैं, लेकिन इसे किसी भिन्न स्थान पर प्रारंभ करते हैं, तो आपको सरणी के समेकित ऑब्जेक्ट के प्रकार को स्पष्ट रूप से प्रदान करना होगा। – dasblinkenlight