次のコードがあります。
Binding binding = new Binding();
binding.setVariable("story", storyFactory.newStory());
GroovyShell shell = new GroovyShell(binding);
exp = getExpression();
System.out.println("Expression: " + exp);
Object result = (Object)shell.evaluate(exp);
これにより、次の NullPointerException とコンソール出力が生成されます。
Expression: story.getDescriptions().get(0).setText(story.getDescriptions().get(0).getText().replace("@", "at").replace("\"", "'").replace("%", "percent"));
java.lang.NullPointerException
at com.me.myapp.GroovyEvaluator._evaluate(GroovyEvaluator.java:56)
at com.me.myapp.testing.expressions.Driver.runEvaluator(Driver.java:131)
at com.me.myapp.testing.expressions.Driver.run(Driver.java:65)
at com.me.myapp.testing.expressions.Driver.main(Driver.java:31)
null
なぜresultNULLなのですか?story他のコードで確認したようにgetDescriptions()、getDescriptions().get(0)両方とも非 null 値を返すため、インスタンスに問題はありません。また、getDescriptions().get(0)null 以外の空でない文字列値を返します。前もって感謝します!