我有下面的课程,包括getter和setter。
class A{
private String field1Required;
private String field2Required;
private String field3;
private String field4;
}
假设在我的主程序中,我收到如下填充的对象A ,
field1Required = false;
field2Required=true,
field3=true;
field4=false;
所以我想只选择field1Required
,field2Required
并打印这些属性的值。如何使用反射或任何其他方式实现它?
答案 0 :(得分:0)
考虑到您的课程定义了getter和setter,您可以使用类似的东西来获得结果。
A obj = new obj();
Class clazz = data.getClass();
Method[] arr = clazz.getDeclaredMethods();
for (Method method : arr) {
if (method.getName().contains("get") &&
method.getName().contains("Required")) {
System.out.println(method.invoke(obj));
}
}
答案 1 :(得分:0)
A a = new A();
Field fields [] =a.getClass().getDeclaredFields();
for (int i=0;i<fields.length;i++) {
if (fields[i].getName().contains("Required"))
{fields[i].setAccessible(true);
System.out.println(fields[i]);
System.out.println(fields[i].get(a));}}
}