Para que un método recursivo funcione ha de recibir parámetros por argumentos, los cuáles se van modificando en cada llamada recursiva.
Así que si quieres seguir usando getResultado() tal cuál, quizás se pueda solucionar creando un segundo método de apoyo, que sería el recursivo.
Por cierto, al margen de esto, el String llamado
equivalencia que tienes declarado como atributo de clase, debería reiniciarse a "cadena vacía" cada vez que llamas al método getResultado().
Si durante la ejecución del programa solo llamas una vez a ese método, no pasa nada.
Pero si se le llamase varias veces, cada vez que se le llama se concatenará la equivalencia computada anteriormente con la actual.
De hecho, no parece que sea necesario declarar ese String como atributo de clase, pero bueno, si lo quieres mantener así, y resolver el computo de manera recursiva, quizás funcione algo como lo que pondré a continuación.
No lo he probado..., en mi "compilador mental" diría que funciona je je...
, pero no es muy fiable así que si no funciona o da resultados raros, dímelo y ya haré pruebas más fiables.
Un saludo.
public String getResultado()
{
equivalente = ""; //Reiniciamos a cadena vacía
equivalente = computaEquivalencia(digitos.length-2); //Método recursivo
return equivalente;
}
private String computaEquivalencia(int indice)
{
if (indice < 0)
return ""; //Fin de las llamadas recursivas
else
return Character.toUpperCase(Character.forDigit(digitos[indice], 16)) + computaEquivalencia(--indice);
}