これを自動化するために、おそらく Apache Commons の「beanutils」を使用できます。
http://commons.apache.org/beanutils/apidocs/org/apache/commons/beanutils/PropertyUtils.html#getSimpleProperty%28java.lang.Object,java.lang.String%29
たとえばdescribe(Object bean)
、読み取り可能なすべての属性 (つまり、ゲッター) のマップを返すメソッドがあります。
次に、そのマップを繰り返して呼び出します。
setSimpleProperty(Object bean, String name, Object value)
と
public static Object getSimpleProperty(Object bean, String name)
そして、ゲッター/セッターがかなり些細なことであるという他のポスターに同意しますが、タイプミスをなくしたり、プロパティ変更リスナーをテストしたりするために、それらをテストする価値があると思います.
たとえば、これは Bean のゲッターを動的に抽出します。
import java.io.Serializable;
import java.util.Set;
import org.apache.commons.beanutils.PropertyUtils;
public class MyTestBean implements Serializable {
private int a;
private int b;
private int c;
private String x;
private String y;
private String z;
public static void main(String[] args) throws Exception {
MyTestBean bean=new MyTestBean();
Set prop=PropertyUtils.describe(bean).keySet();
for (Object o : prop) {
System.out.println((String)o);
}
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
public String getZ() {
return z;
}
public void setZ(String z) {
this.z = z;
}}
このコードを実行するには、BeanUtils と CommonsLogging の両方、および両方のライブラリの JAR をプロジェクトにダウンロードする必要があります。