如何在不命名类/类型的情况下动态解析方法getter及其值

时间:2018-05-25 13:15:09

标签: java spring

我正在使用java bean的接口。大多数时候,这个界面产生的方法对我来说已经足够了。

但我经常需要访问此接口的实现。

这里的问题是我只有一个 String 键来访问已实现的java bean的特定属性。

问题

在我的运行时,我有 String 变量,其值为successPage。 然后我有一个接口Content。此接口不会产生调用的方法 getSuccessPage(),但其中一个实现Formular确实如此。

我想做什么

我想使用某种动态解决方法。请参阅此伪代码:

Content content;
String foundValue = propertyResolver.getDynamicValue("successPage", content, String.class)
// this should ultimately call Formular.getSuccessPage() and return it's value

正如您所看到的,我不必告诉方法具体实现的类型。因为我无法明确地告诉运行时实际使用了什么类型的实现。

我已经听说过反思并自己使用它。但我也听说过 Spring PropertyResolver类。我试图使用它们但是无法理解它们的API并且搜索结果无法清除我的目标。

1 个答案:

答案 0 :(得分:1)

我会使用apache commons PropertyUtils

String foundValue = PropertyUtils.getProperty(content, "successPage").toString();