第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(); } }
データクラスのデバッグにもってこい!!