Hi,

could anyone, please, explain to me what to fix in the script below? I
am getting the error message below:

Thanks,

Jochen


<<<Error>>>
    : Apparent variable 'foo' was found in a static scope but doesn't
refer to a local
    variable, static field or class. Possible causes:
    You attempted to reference a variable in the binding or an instance variable
     from a static context.
     You misspelled a classname or statically imported field. Please check the
     spelling.
     You attempted to use a method 'foo' but left out brackets in a place not
     allowed by the grammar.
     @ line 7, column 22.
         demo.foo = "${foo}";
<<</Error>>>

My Java class looks like this:

<<<Java code>>>
     public static void main(String[] args) {
        final String SCRIPT =
            "public class Demo {\n"
            + " public void run() {\n"
            + " System.out.println(\"Hello ${this.foo}\");\n"
            + " }\n"
            + " public static void main(String[] args) {\n"
            + " Demo demo = new Demo().run();\n"
            + "     demo.foo = \"${foo}\";\n"
            + "     }\n"
             + "}\n";
        final GroovyShell gsh = new GroovyShell();
        final Map<String,Object> parameters = new HashMap<>();
        parameters.put("foo", "World");
        final Script script = gsh.parse(SCRIPT, new Binding(parameters));
        script.run();
    }
<<</Java code>>>




-- 
The woman was born in a full-blown thunderstorm. She probably told it
to be quiet. It probably did. (Robert Jordan, Winter's heart)
  • [no subject] Jochen Wiedmann
    • Re: Paul King

Reply via email to