Java: clase interna anónima utilizando una variable local

¿Cómo puedo obtener el valor deuserId pasó a este método en mi subclase interna anónima aquí?

public void doStuff(String userID) {
    doOtherStuff(userID, new SuccessDelegate() {
        @Override
        public void onSuccess() {
            Log.e(TAG, "Called delegate!!!! "+ userID);
        }
    });
}

Me sale este error:

No se puede hacer referencia a un ID de usuario de variable no final dentro de una clase interna definida en un método diferente

Estoy bastante seguro de que no puedo asignarlo como final ya que es una variable con un valor desconocido. Había escuchado que esta sintaxis conserva el alcance de alguna manera, así que creo que debe haber un truco de sintaxis que aún no conozco.

Respuestas a la pregunta(5)

Su respuesta a la pregunta