Это не правильно. SpEL - это просто еще один язык JVM. Это не нетипизированный язык, как JavaScript. Итак, что произойдет, если у вашего Java-класса нет какого-либо свойства? Справа: Property or field <foo> cannot be found on object of type <bar>
.
Следовательно, логика в выражении не должна опираться на какую-то логику отражения, отличную от Java.
Вам определенно нужно иметь что-то вроде instanceof
, но вы можете жить без кастинга, чтобы получить доступ к существующим свойствам.