有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓/java概念,通过单个循环调用所有getter方法

我正在做一项作业,并停留在这一点上: 我有一个类,其中有30个getter和setter方法

  public class example{

public String get1(){
 return someString1;
}

public String get2(){
return someString1;
}

public String get3(){
return someString4;
}

and so on...

public String get30(){
return someString30;
}

}

现在我想用一个循环调用所有getter方法,如

for(int i= 1; i<=30;i++){
// String total = get1()+get2()+get3()...............
}

我该怎么办

编辑:我使用反射:

http://docs.oracle.com/javase/tutorial/reflect/member/methodInvocation.html

谢谢Ricky


共 (4) 个答案

  1. # 1 楼答案

    注释代码是实现这一点的唯一方法。但这是你的设计不正确的症状。与其拥有30个类型为String的属性,还不如拥有一个类型为String[]List<String>的属性

    然后你可以做:

    List<String> list = getListOfStrings();
    StringBuilder builder = new StringBuilder();
    for (String s : list) {
        builder.append(s);
    }
    String concatenation = builder.toString();
    
  2. # 2 楼答案

    只需重写示例类中的toString()方法,如下所示:

    @Override
    public String toString() {
      return someString1 + "  " + someString2 + "  " + someString3;
    }
    
  3. # 4 楼答案

    如果这些是标准访问器,那么最好使用Listget(index)

    否则反射黑客会有所帮助

    public class Example{
    
      private List<Integer> marks = new ArrayList<Integer>();
    

    现在循环

    for(int i= 1; i<=30;i++){
       total += marks.get(i);
    }