从属性值创建动态字符串

我有我的 application.properties:

test.md5.params=something1,something4

在我的 java 类中,我得到了这个特定的值: 并且需要创建与属性文件中相同的字符串,例如

 public String calculate(RequestClass request)
       {
       List<String> params= //I am getting the values from application.prop  
        **(above part id done)**
       

我的问题如下:: 现在在我的参数列表中我有 [something1,something4] 所以我需要连接两个字符串值,如下所示:

       String finalString=request.getsomething1()+request.getsomething4();
       return finalString;
       }

我的问题是如何动态执行此操作,并且在我的属性文件中,我可能会收到“n”个值。 注意:我需要编写代码以使我的类保持不变,如果将来我在属性文件中添加 10 个以上的值,我的最终字符串应该像

一样返回
   String finalString=request.getsomething1()+request.getsomething4()+....all the values.;
leilei19870815 回答:从属性值创建动态字符串

通过反射这是可能的,下面是一种实现。

public String calculate(RequestClass request) throws InvocationTargetException,IllegalAccessException {
    List<String> params = Arrays.asList("something1","something4");

    // Do your logic to get the method Names from params,below is an simple example - paramsUpdated
    List<String> paramsUpdated = Arrays.asList("getSomething1","getSomething4");

    // Reflection to get the methods of request class
    Method[] methods = request.getClass().getMethods();
    StringBuilder sb = new StringBuilder();

    for (String param : paramsUpdated) {
        for (Method method : methods) {
            if (param.equals(method.getName())) { 
                sb.append(method.invoke(request));
            }
        }

    }

    return sb.toString();

}
本文链接:https://www.f2er.com/23797.html

大家都在问