java.lang.IllegalAccessException:Classcom.java.demo.controller.DemoController can not access a member of classorg.activiti.engine.impl.persistence.entity.ExecutionEntityImplwithmodifiers"protected"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:296)
at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:288)
at java.lang.reflect.Field.get(Field.java:390)
at com.java.boot2activiti6modeletogether0617.demo.controller.DemoController.lambda$copyPropertiesWithFields$4(DemoController.java:225)
at java.util.Arrays$ArrayList.forEach(Arrays.java:3880)
at com.java.boot2activiti6modeletogether0617.demo.controller.DemoController.copyPropertiesWithFields(DemoController.java:217)
java.lang.reflect.Field :
packagejava.lang.reflect;/**
* A {@code Field} provides information about, and dynamic access to, a
* single field of a class or an interface. The reflected field may
* be a class (static) field or an instance field.
*
* <p>A {@code Field} permits widening conversions to occur during a get or
* set access operation, but throws an {@code IllegalArgumentException} if a
* narrowing conversion would occur.
*
* @see Member
* @see java.lang.Class
* @see java.lang.Class#getFields()
* @see java.lang.Class#getField(String)
* @see java.lang.Class#getDeclaredFields()
* @see java.lang.Class#getDeclaredField(String)
*
* @author Kenneth Russell
* @author Nakul Saraiya
*/publicfinalclassFieldextendsAccessibleObjectimplementsMember{privateClass<?> clazz;privateint slot;// 插槽privateString name;// 字段名称privateClass<?> type;// 字段类型privateint modifiers;// 访问修饰符 privatetransientString signature;// Generics and annotations support// generic info repository; lazily initializedprivatetransientFieldRepository genericInfo;privatebyte[] annotations;// Cached field accessor created without overrideprivateFieldAccessor fieldAccessor;
2、通过PropertyDescriptor方法
PropertyDescriptor 也是基于反射 的方式, 它会获取class的属性值以及该属性值的 get 和 set 方法, 这两种方法都是 public 的访问权限,因此一般不会出现访问权限的异常