// do not instantiate
if(ao instanceof Field) return new FieldBeanProperty((Field) ao); if(ao instanceof Method) return new MethodBeanProperty((Method) ao); throw new IllegalArgumentException("can't handle " + ao.getClass().getName());