Variable ‘err‘ is accessed from within inner class, needs to be final or effectively final

内部类调用外部变量,需要是final类型

        String err="";
        final String[] errorMsg = new String[50];
        
invoker.setOutputHandler(new InvocationOutputHandler() {
            @Override
            public void consumeLine(String s) throws IOException {
                if(s.contains("[ERROR]") ){
                    System.out.println(s);
                    errorMsg[0] = s;//正确
                    err=s ;//错误
                }
            }
        });

解决方法:

改成用数组接!!!!

Guess you like

Origin blog.csdn.net/x18094/article/details/121496610