Как обработать "Свойство или поле не может быть найдено на объекте в SpEL"? - PullRequest
0 голосов
/ 14 сентября 2018

Как обработать Property or field <foo> cannot be found on object of type <bar> в SpEL? например Если данные не имеют свойства placeId, они не должны выдавать ошибку выше и возвращать другое значение.

"${@block?.value?.data?.placeId ?: 'differentValue'}"

1 Ответ

0 голосов
/ 14 сентября 2018

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

Следовательно, логика в выражении не должна опираться на какую-то логику отражения, отличную от Java.

Вам определенно нужно иметь что-то вроде instanceof, но вы можете жить без кастинга, чтобы получить доступ к существующим свойствам.

...