idea 鼠标变量_intellij-idea – 调试器无法在Lambda中看到局部变量

我注意到,当我的调试器在lambda内停止时,当我将鼠标悬停在局部变量上时,它将报告无法找到局部变量’variable_name’,即使它在lambda中可见并且已被使用.

示例代码

public class Main {

public static void main(String[] args) {

String a = "hello_world";

m1(a);

}

private static void m1(String a) {

AccessController.doPrivileged((PrivilegedAction) () -> {

System.out.println("blala " + a);

return "abc";

});

}

}

尝试使用System.out.println中的断点(“blala”a);并在返回“abc”后,它总是报告相同的错误.

我使用了AccessController.doPrivileged,因为它是我在原始代码中使用的,当然我使用的是Java 8.

它在Watchers和Evaluate Expression中说了同样的话.

我尝试使用“匿名类”版本,调试器正确看到了a的值

private static void m1(String a) {

AccessController.doPrivileged(new PrivilegedAction() {

@Override

public String run() {

System.out.println("blala " + a);

return "abc";

}

});

}

我遗漏了一些关于lambda表达式的内容,或者它是一个IntellIJ IDEA 14错误?

我现在不想报告错误,因为我已经报告了由我的代码而不是IntellIJ IDEA引起的错误,所以我想在做某事之前确定(因为我不经常使用Java 8,所以我可能是错的).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值