Мне нужно реализовать метод getPublicFields для перечисления имен открытых полей, объявленных в классе, к которому принадлежит объект. Поля, унаследованные от родительских классов, должны быть опущены. Имена полей должны быть отсортированы в лексическом порядке.
Что я делаю не так?
/**
Get sorted list of public fields the object declares (inherited fields should be skipped).
*/
class FieldGetter {
public String[] getPublicFields(Object object) {
Field[] fieldsObject = object.getClass().getDeclaredFields();
ArrayList<String> fieldsString = new ArrayList<>();
for (Field fields : fieldsObject) {
if (Modifier.isPublic(fields.getModifiers())){
fieldsString.add(fields.toString());
}
}
String[]result = fieldsString.toArray(new String[fieldsString.size()]);
Arrays.sort(result);
return result;
}
}