Java Netbeans自动完成在lambda表达式中不起作用
我在Netbeans 8.2中遇到了一个奇怪的错误 当使用lambda表达式声明对象时,lambda中变量的自动完成似乎不起作用,相反,我看到了全局变量、关键字建议以及屏幕截图中显示的其他内容 正如您所看到的,Java Netbeans自动完成在lambda表达式中不起作用,java,netbeans,lambda,anonymous-inner-class,Java,Netbeans,Lambda,Anonymous Inner Class,我在Netbeans 8.2中遇到了一个奇怪的错误 当使用lambda表达式声明对象时,lambda中变量的自动完成似乎不起作用,相反,我看到了全局变量、关键字建议以及屏幕截图中显示的其他内容 正如您所看到的,testString和testString2看不见 我尝试过其他物体,结果总是一样的 现在,如果我们对匿名内部类执行相同的操作,我们可以看到变量testString和testString2确实出现了。 下面是供您在IDE上试用的示例代码。我还包括了一个ActionListener,以证
testString
和testString2
看不见
我尝试过其他物体,结果总是一样的
现在,如果我们对匿名内部类执行相同的操作,我们可以看到变量testString
和testString2
确实出现了。
下面是供您在IDE上试用的示例代码。我还包括了一个ActionListener
,以证明问题不在于一个接口
public class SOInner {
private ActionListener listenerExampleLambda = e -> {
//autocomplete DOES NOT work for these vars
int testVarInner = 2;
int testVarInner2 = 4;
};
private ActionListener listenerExampleClass = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//autocomplete works for these vars
int testVarInner = 2;
int testVarInner2 = 4;
}
};
private Comparable<SOInner> comparableExampleLambda = o -> {
//autocomplete DOES NOT work for these vars
String testString = "Hello";
String testString2 = "Hi";
return 0;
};
private Comparable<SOInner> comparableExampleClass = new Comparable<SOInner>() {
@Override
public int compareTo(SOInner o) {
//autocomplete works for these vars
String testString = "Hello";
String testString2 = "Hi";
return 0;
}
};
}
public class SOInner{
私有ActionListener Listener示例lambda=e->{
//自动完成不适用于这些变量
int testVarInner=2;
int testVarInner2=4;
};
私有ActionListener listenerExampleClass=新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
//自动完成适用于这些变量
int testVarInner=2;
int testVarInner2=4;
}
};
私人可比示例lambda=o->{
//自动完成不适用于这些变量
String testString=“Hello”;
字符串testString2=“Hi”;
返回0;
};
私人可比可比ExampleClass=新可比(){
@凌驾
公共内部比较(SOInner o){
//自动完成适用于这些变量
String testString=“Hello”;
字符串testString2=“Hi”;
返回0;
}
};
}
此错误是否有解决方案或已被记录?您的问题是什么?我现在已添加了此问题。您是否提交了错误报告?现在就可以了。感谢您提供的链接,Netbeans网站上的Bugzilla部分一团糟。对于您的两个失败示例,值得注意的是,如果您将它们分解为初始值设定项块中的声明和赋值,那么它们也可以正常工作。例如,autocomplete的工作原理是:私有可比较ExampleLambda;{可比示例lambda=o->{yadda,yadda}};