"foo.bar.baz"
みたいな文字列で getFoo().getBar().getBaz()
によって得られる値を取得します。
Spring の使用が前提ですが、SpEL を利用することで簡単に取得できます。
SpelExpressionParser parser = new SpelExpressionParser();
Expression expr = parser.parseExpression("foo.bar.baz");
Object value = expr.getValue(bean);
これだけ。
StandardEvaluationContext
を用意して、MapAccessor
を設定しておけば Map
オブジェクトに対しても同様にアクセスできます。
StandardEvaluationContext context = new StandardEvaluationContext();
context.addPropertyAccessor(new MapAccessor());
Object value = expr.getValue(context, map);