如何在java中循环动态更改方法名称

时间:2017-08-17 14:04:15

标签: java

我有一个bean类,我想在循环中获取MediaContentType0,MediaContentType1,MediaContentType2,MediaContentType3 我已经获得了json字符串并使用gson将其转换为java类

mybean class is following :- 
public class CommonBean {
public String to;
public String from;
public String body;
public String numMedia;
public String MediaContentType0 ;
public String MediaContentType1 ;
public String MediaContentType2 ;
public String MediaContentType3;
public String getTo() {
    return to;
}
public void setTo(String to) {
    this.to = to;
}

public String getFrom() {
    return from;
}
public void setFrom(String from) {
    this.from = from;
}
public String getBody() {
    return body;
}
public void setBody(String body) {
    this.body = body;
}
public String getNumMedia() {
    return numMedia;
}
public void setNumMedia(String numMedia) {
    this.numMedia = numMedia;
}
public String getMediaContentType0() {
    return MediaContentType0;
}
public void setMediaContentType0(String mediaContentType0) {
    MediaContentType0 = mediaContentType0;
}
public String getMediaContentType1() {
    return MediaContentType1;
}
public void setMediaContentType1(String mediaContentType1) {
    MediaContentType1 = mediaContentType1;
}
public String getMediaContentType2() {
    return MediaContentType2;
}
public void setMediaContentType2(String mediaContentType2) {
    MediaContentType2 = mediaContentType2;
}
public String getMediaContentType3() {
    return MediaContentType3;
}
public void setMediaContentType3(String mediaContentType3) {
    MediaContentType3 = mediaContentType3;
}
}

这怎么可能?请建议。谢谢                    }

{{1}}

请建议如何使用getter方法动态获取这些元素?

1 个答案:

答案 0 :(得分:5)

您可以使用Java Reflection API

for(int i=0;i<numberOfMedia;i++) {
  try {
    Method getterMethod = commonBean.getClass().getMethod("getMediaUrl"+i);
    getterMethod.invoke(commonBean);
  } catch(Exception e) {}
}