में स्थानीय चर नहीं देख सकता है मैंने देखा कि जब मैं अपने माउस को एक स्थानीय चर पर घुमाता हूं, जब मेरा डिबगर लैम्ब्डा के अंदर बंद हो जाता है तो यह Cannot find local variable 'variable_name'
की रिपोर्ट करेगा, भले ही यह लैम्ब्डा के अंदर दिखाई दे और इसका उपयोग किया जाए।डीबगर एक लैम्ब्डा
उदाहरण कोड
public class Main {
public static void main(String[] args) {
String a = "hello_world";
m1(a);
}
private static void m1(String a) {
AccessController.doPrivileged((PrivilegedAction<String>)() -> {
System.out.println("blala " + a);
return "abc";
});
}
}
System.out.println("blala " + a);
में एक ब्रेकपाइंट साथ की कोशिश करो और return "abc"
के बाद और यह हमेशा एक ही त्रुटि की रिपोर्ट।
मैं AccessController.doPrivileged
इस्तेमाल किया है क्योंकि यह क्या मैं अपने मूल कोड में प्रयोग किया जाता है और निश्चित रूप से मैं जावा 8.
उपयोग कर रहा हूँ यह Watchers
और Evaluate Expression
में एक ही बात कहते हैं।
मैं "गुमनाम वर्ग" संस्करण और डीबगर उपयोग करने की कोशिश a
का मूल्य सही ढंग से देखता है
private static void m1(String a) {
AccessController.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
System.out.println("blala " + a);
return "abc";
}
});
}
मैं लैम्ब्डा भाव के बारे में कुछ याद कर रहा हूँ या यह एक IntelliJ विचार 14 बग है?
मैं अभी बग की रिपोर्ट नहीं करना चाहता क्योंकि मैंने पहले से ही एक बग की सूचना दी है जो IntellIJ IDEA के बजाय मेरे कोड के कारण हुई थी, इसलिए मैं कुछ करने से पहले सुनिश्चित करना चाहता हूं (और क्योंकि मैं जावा का उपयोग नहीं करता 8 अक्सर, इसलिए मैं गलत हो सकता था)।