디버거가 람다에서 중지되었을 때 로컬 변수 위로 마우스를 가져 가면 람다 내부에서 볼 수 있고 사용되는 경우에도 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
를 사용 물론 나는
Watchers
및
Evaluate Expression
에서 같은 일을 말한다 자바 8.
을 사용하고 있습니다.
는 나는 "익명 클래스"버전 및 디버거를 사용하여 시도는
private static void m1(String a) {
AccessController.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
System.out.println("blala " + a);
return "abc";
}
});
}
나는 람다 표현식에 대한 뭔가를 누락하거나이하게 IntelliJ IDEA (14) 버그 제대로 a
의 값을보고?
IntellIJ IDEA 대신 내 코드로 인해 발생한 버그를 이미보고했기 때문에 지금보고하지 않으려 고합니다. 그래서 뭔가하기 전에 (그리고 Java를 사용하지 않기 때문에) 8 너무 자주, 그래서 내가 잘못 될 수 있습니다).