|
35 | 35 | import java.lang.annotation.Annotation;
|
36 | 36 | import java.lang.reflect.Field;
|
37 | 37 | import java.lang.reflect.InvocationTargetException;
|
| 38 | +import java.lang.reflect.Modifier; |
38 | 39 | import java.util.ArrayList;
|
39 | 40 | import java.util.Arrays;
|
40 | 41 | import java.util.Collection;
|
|
43 | 44 | import java.util.LinkedList;
|
44 | 45 | import java.util.List;
|
45 | 46 | import java.util.Map;
|
| 47 | +import java.util.stream.Collectors; |
46 | 48 |
|
47 | 49 | /**
|
48 | 50 | * Collector to retrieve parameters for setting up the HTTP request sent in the invoke method of WebResourceFactory
|
@@ -145,7 +147,7 @@ private void addBeanParameter(final Object beanParam)
|
145 | 147 | throws IllegalAccessException, IntrospectionException, InvocationTargetException {
|
146 | 148 | Class<?> beanClass = beanParam.getClass();
|
147 | 149 | List<Field> fields = new ArrayList<>();
|
148 |
| - getAllFields(fields, beanClass); |
| 150 | + getAllNonStaticFields(fields, beanClass); |
149 | 151 |
|
150 | 152 | for (final Field field : fields) {
|
151 | 153 | Object value = null;
|
@@ -178,11 +180,15 @@ private void addBeanParameter(final Object beanParam)
|
178 | 180 | }
|
179 | 181 | }
|
180 | 182 |
|
181 |
| - private List<Field> getAllFields(List<Field> fields, Class<?> type) { |
182 |
| - fields.addAll(Arrays.asList(type.getDeclaredFields())); |
| 183 | + private List<Field> getAllNonStaticFields(List<Field> fields, Class<?> type) { |
| 184 | + |
| 185 | + List<Field> nonStaticFields = Arrays.stream(type.getDeclaredFields()) |
| 186 | + .filter(field -> !Modifier.isStatic(field.getModifiers())) |
| 187 | + .collect(Collectors.toList()); |
| 188 | + fields.addAll(nonStaticFields); |
183 | 189 |
|
184 | 190 | if (type.getSuperclass() != null) {
|
185 |
| - getAllFields(fields, type.getSuperclass()); |
| 191 | + getAllNonStaticFields(fields, type.getSuperclass()); |
186 | 192 | }
|
187 | 193 |
|
188 | 194 | return fields;
|
|
0 commit comments