我的目标 LabOrder 包含无法用数组索引定位的数据。我要做的是像这样打印对象中的非空值 name = John . 如何遍历非空值并打印?
LabOrder
name = John
noj0wjuj1#
请尝试以下操作:
import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; LabOrder order = new LabOrder();// Instantiation of the bean. LabOrder order = Introspector.getBeanInfo(LabOrder.class); for (PropertyDescriptor propertyDesc : order.getPropertyDescriptors()) { String propertyName = propertyDesc.getName(); Object value = propertyDesc.getReadMethod().invoke(order); System.out.println(propertyName); System.out.println(value); }
jexiocij2#
你应该使用反射。这将帮助您:
ClassABC abc = new ClassABC(); for (Field field : abc.getClass().getDeclaredFields()) { field.setAccessible(true); String name = field.getName(); Object value = field.get(abc); System.out.printf("%s: %s%n", name, value); }
u4vypkhs3#
可以使用反射迭代对象的字段:
Field[] fields = obj1.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); String name = field.getName(); Object value = field.get(obj1); if (value != null) { System.out.println(name + " = " + value); } }
3条答案
按热度按时间noj0wjuj1#
请尝试以下操作:
jexiocij2#
你应该使用反射。这将帮助您:
u4vypkhs3#
可以使用反射迭代对象的字段: