Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Netbeans自动完成在lambda表达式中不起作用_Java_Netbeans_Lambda_Anonymous Inner Class - Fatal编程技术网

Java Netbeans自动完成在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,以证

我在Netbeans 8.2中遇到了一个奇怪的错误

当使用lambda表达式声明对象时,lambda中变量的自动完成似乎不起作用,相反,我看到了全局变量、关键字建议以及屏幕截图中显示的其他内容

正如您所看到的,
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}};