次のコードがあります。
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
なぜresult
NULLなのですか?story
他のコードで確認したようにgetDescriptions()
、getDescriptions().get(0)
両方とも非 null 値を返すため、インスタンスに問題はありません。また、getDescriptions().get(0)
null 以外の空でない文字列値を返します。前もって感謝します!