第7回 メソッドの動的実行
前回、クラスの動的生成について書きました。
同様に、メソッドを動的に実行することが可能です。
今回は、その機能を利用してprintMethodというメソッドを実装してみました。
引数に渡されたオブジェクトのメソッドのうち、 引数なしで、戻り値があるメソッドを実行し結果を表示しています。
public static void printMethod(Object obj) {
Class cls = obj.getClass();
try {
for (int i = 0; i < cls.getMethods().length; i++) {
Method method = cls.getMethods()[i];
if (method.getReturnType().equals(void.class)) {
continue;
}
if (method.getParameterTypes() != null
&& method.getParameterTypes().length > 0) {
continue;
}
Object value = method.invoke(obj, null);
String name = method.getName();
System.out.println(name + " = " + value);
}
} catch(Exception e) {
e.printStackTrace();
}
}
データクラスのデバッグにもってこい!!

