Executar método por meio de uma String

Boa tarde pessoal.

Suponhamos que eu tenha uma String assim:

String metodo = "contarAteDez(10)"

Tem como eu chamar o metodo contarAteDez(10) atraves desta String?

Desde já agradeço.

oO… pra que voce vai usar isso ???

usa Reflection

EDIT:

[code]
public class Teste {

public Teste() {
    try {
        Class classe = Class.forName("Teste");
        java.lang.reflect.Method met = classe.getMethod("metodo");
        met.invoke(this);
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (java.lang.reflect.InvocationTargetException e) {
        e.printStackTrace();
    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

public void metodo() {
    // ......
}

}[/code]

como a elisangela falou, use reflection.

Porém a outros problemas em utilizar dessa forma, olhe o exemplo:

String methodInput = "println(23)";
String methodName = methodInput.replaceFirst("\\(.*$", "");
String methodArgs = methodInput.replaceFirst("^[^(]+\\((.*)\\)", "$1");
Class[] classArgs = getClasses(methodArgs.split(", *"));
Method method = System.out.getClass().getMethod(methodName, classArgs);
method.invoke(this,methodArgs.split(", *"));

Aqui, eu quero chamar System.out.println(23);.
Para isso, separo o nome do método dos argumentos.
Depois pego os argumentos e faço split (caso haja mais de 1)
Agora vem a parte ruim: preciso obter a classe de cada argumento passado para q o java possa identificar a assinatura correta método. Isso se vc quiser algo q funcione de forma genérica e deduza sobrecargas. Se vc se comprometer a não utilizar sobrecargas, a coisa fica bem mais fácil, pois vc pode obter o método através de System.out.getClass().getMethods().