11
dado una clase que contiene una enumeración:¿Cómo hago referencia a un tipo anidado en SpEL?
public class MyClass {
public enum NestedEnum {
value1(1),
value2(2);
private int code;
private NestedEnum(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
}
¿Cómo me refiero NestedEnum? Este:
#{T(MyClass.NestedEnum).value1.getCode()}
resultados en la excepción:
org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found 'namespace.MyClass.NestedEnum'
esto:
#{T(T(MyClass).NestedEnum).value1.getCode()}
da lugar a la excepción:
org.springframework.expression.spel.SpelParseException: EL1043E:(pos 3): Unexpected token. Expected 'rparen())' but was 'lparen(()'
no puedo pensar en otras buenas opciones intentar.
¿Sería mejor para especificar el 'Type'->' cambio NestedEnum' en su respuesta, en su lugar? A menudo, el código 'incorrecto' en las preguntas debe dejarse en paz, de modo que la solución en una respuesta puede ser más obvia. – sarnold
Esto también habría sido una solución, pero supongo que habría perjudicado la comprensibilidad de la respuesta. También supongo que fue un error de copiar y pegar del que pregunta. Sin embargo, gracias por su pista. – micfra