32
32
* @author <a href="mailto:michal@codehaus.org">Michal Maczka</a>
33
33
* @author <a href="mailto:jesse@codehaus.org">Jesse McConnell</a>
34
34
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
35
- *
36
35
*/
37
36
public final class ReflectionUtils
38
37
{
@@ -126,7 +125,7 @@ public static List<Method> getSetters( Class<?> clazz )
126
125
127
126
/**
128
127
* @param method the method
129
- * @return the class of the argument to the setter. Will throw an RuntimeException if the method isn't a setter.
128
+ * @return the class of the argument to the setter. Will throw an RuntimeException if the method isn't a setter.
130
129
*/
131
130
public static Class <?> getSetterType ( Method method )
132
131
{
@@ -163,6 +162,7 @@ public static void setVariableValueInObject( Object object, String variable, Obj
163
162
164
163
/**
165
164
* Generates a map of the fields and values on a given object, also pulls from superclasses
165
+ *
166
166
* @param variable field name
167
167
* @param object the object to generate the list of fields from
168
168
* @return map containing the fields and their values
@@ -218,6 +218,14 @@ private static void gatherVariablesAndValuesIncludingSuperclasses( Object object
218
218
219
219
Class <?> clazz = object .getClass ();
220
220
221
+ if ( Float .parseFloat ( System .getProperty ( "java.specification.version" ) ) >= 11
222
+ && Class .class .getCanonicalName ().equals ( clazz .getCanonicalName () ) )
223
+ {
224
+ // Updating Class fields accessibility is forbidden on Java 16 (and throws warning from version 11)
225
+ // No concrete use case to modify accessibility at this level
226
+ return ;
227
+ }
228
+
221
229
Field [] fields = clazz .getDeclaredFields ();
222
230
223
231
AccessibleObject .setAccessible ( fields , true );
0 commit comments