En este caso, el método ejecutar recibe el nombre de la clase, el nombre del método y el parámetro que recibe dicho método y retorna el tiempo que tarda el método en ser ejecutado.
import java.lang.reflect.*; public static double ejecutar(String nombreClase, String nombreMetodo, Object parametro) throws Exception { double t1, t2; t1 = System.currentTimeMillis(); Class clase = Class.forName(nombreClase); Method metodo = clase.getMethod(nombreMetodo,parametro.getClass()); metodo.invoke(null, parametro); t2 = System.currentTimeMillis(); return (t2-t1)/1000.0; }
En este ejemplo se va a calcular el tiempo requerido por el método de ordenación por inserción de la clase Algoritmos sobre un array de 10000 elementos:
public class TestEjecutar { public static void main(String[] args) throws Exception { int[] v = Algoritmos.crearVector(10000); System.out.println(Algoritmos.ejecutar("Algoritmos", "ordenacionInsercion", v)); } }
1 comentarios:
son buenos los alumnos
Publicar un comentario