होना चाहिए मेरे पास जावाएफएक्स 8 प्रोग्राम (जावाएफएक्स पोर्ट्स क्रॉस प्लेटफॉर्म के लिए) जो कुछ भी मैं चाहता हूं उसे करने के लिए काफी तैयार है लेकिन एक कदम छोटा हो गया है। कार्यक्रम एक टेक्स्ट फ़ाइल पढ़ता है, यादृच्छिक रेंज स्थापित करने के लिए लाइनों की गणना करता है, उस सीमा से यादृच्छिक संख्या चुनता है और उस पंक्ति को डिस्प्ले के लिए पढ़ता है।लैम्ब्डा अभिव्यक्ति से संदर्भित स्थानीय चर अंतिम या प्रभावी रूप से अंतिम
The error is: local variables referenced from a lambda expression must be final or effectively final
button.setOnAction(e -> l.setText(readln2));
मैं थोड़ा जावा के लिए नया हूँ, लेकिन है कि क्या मैं लैम्ब्डा या नहीं का उपयोग Label l
में अगले यादृच्छिक पंक्ति प्रदर्शन के लिए लगता है है, मेरे button.setOnAction(e -> l.setText(readln2));
लाइन एक स्थिर मूल्य की उम्मीद है।
कोई भी विचार मैं स्क्रीन पर बटन दबाते समय प्रत्येक बार var readln2 डिस्प्ले के अगले मूल्य को कैसे बदल सकता हूं?
String readln2 = null;
in = new BufferedReader(new FileReader("/temp/mantra.txt"));
long linecnt = in.lines().count();
int linenum = rand1.nextInt((int) (linecnt - Low)) + Low;
try {
//open a bufferedReader to file
in = new BufferedReader(new FileReader("/temp/mantra.txt"));
while (linenum > 0) {
//read the next line until the specific line is found
readln2 = in.readLine();
linenum--;
}
in.close();
} catch (IOException e) {
System.out.println("There was a problem:" + e);
}
Button button = new Button("Click the Button");
button.setOnAction(e -> l.setText(readln2));
// error: local variables referenced from a lambda expression must be final or effectively final
'readln2' स्टोर करने के लिए स्ट्रिंग के बजाय एक सरल स्ट्रिंगप्रॉपर्टी का उपयोग करने के लिए इसे हल करने का सबसे आसान तरीका। – eckig
धन्यवाद। क्या आप थोड़ा सा विस्तार कर सकते हैं। इसे देखने से मुझे यकीन नहीं है कि मैं बाहरी फ़ाइल को पढ़ने/उपयोग करने के तरीके के साथ कैसे संगत बना सकता हूं। – Jeff
मेरी राय में, इस प्रश्न को कोड की 4 पंक्तियों तक मुंडा कर दिया जाना चाहिए था। ठीक है, 15 लाइनें - इसके बाद जावा! ;-) शायद इस कमी अभ्यास के दौरान, उत्तर खुद पोस्टर के लिए स्पष्ट हो गया होगा। –