Попробуйте hasattr()
:
if hasattr(a, 'property'):
a.property
РЕДАКТИРОВАНИЕ: См. ответ zweiterlinde ниже, кто дает хороший совет о выяснении у прощения! Очень pythonic подход!
общая практика в Python - то, что, если свойство, вероятно, будет там большую часть времени, просто назовите его и или позвольте исключению распространить или захватить его с блоком попытки/кроме. Это, вероятно, будет быстрее, чем hasattr
. Если свойство, вероятно, не будет там большую часть времени, или Вы не уверены, использование hasattr
, вероятно, будет быстрее, чем повторное попадение в блок исключения.
Как насчет этого:
<h:outputText value="#{fn:length(someBean.someList)}" />
Вам нужно будет сослаться на functions
taglib на вашей странице JSF (URI: http: //java.sun. com / jsp / jstl / functions
).
Это точно не проблема JSF 2.0. Спецификация JSF по-прежнему требует наличия класса, соответствующего спецификации компонента. Классы коллекций не делают этого с помощью метода .size ()
. Это все равно должно быть .getSize ()
.
Учитывая потребность в «стандартном» способе доступа к значениям класса, мы не сможем в ближайшее время обойти это в JSF. Кому-то нужно исправить классы коллекции.