WrapDynaBean wrapDynaBean=new WrapDynaBean(new A()); DynaProperty[] dynaProperties = wrapDynaBean.getDynaClass().getDynaProperties(); List<Object> objects=new ArrayList<>(); for (DynaProperty dynaProperty : dynaProperties) { System.out.println(dynaProperty.getName()+" = "+wrapDynaBean.get(dynaProperty.getName())); objects.add(wrapDynaBean.get(dynaProperty.getName())); } Object[] theArrayYouWant=objects.toArray(new Object[objects.size()]);
/** * Will decompose only if the Object is Serializable * @param o object to decompose * @param container Serializable container * @param alreadyDecomposed hashmap of decomposed objects */ @Override void decomposeInto(final Object o, final Serializable container, final IdentityHashMap<Object, Serializable> alreadyDecomposed) { LazyDynaBean decomposed = (LazyDynaBean)container; WrapDynaBean bean = new WrapDynaBean(o); WrapDynaClass dynaClass = (WrapDynaClass)bean.getDynaClass(); for (DynaProperty property : dynaClass.getDynaProperties()) { String name = property.getName(); Method readMethod = dynaClass.getPropertyDescriptor(name).getReadMethod(); if (MethodUtils.getAccessibleMethod(readMethod) != null) { Object beanProperty; try { beanProperty = bean.get(name); } catch (RuntimeException e) { throw new RuntimeException("Unable to decompose " + o.getClass().getName() + "." + name, e); } Serializable decomposedProperty = _delegate.decompose(beanProperty, alreadyDecomposed); decomposed.set(name, decomposedProperty); } } } }