Collection<PsiField> (@NotNull PsiClass psiClass) { final Collection<PsiField> psiFields = new ArrayList<>(); FieldNameConstantsFieldProcessor fieldProcessor = getFieldNameConstantsFieldProcessor(); for (PsiField psiField : PsiClassUtil.collectClassFieldsIntern(psiClass)) { boolean useField = true; PsiModifierList modifierList = psiField.getModifierList(); if (null != modifierList) { //Skip static fields. useField = !modifierList.hasModifierProperty(PsiModifier.STATIC); //Skip fields having same annotation already useField &= PsiAnnotationSearchUtil.isNotAnnotatedWith(psiField, fieldProcessor.getSupportedAnnotationClasses()); //Skip fields that start with $ useField &= !psiField.getName().startsWith(LombokUtils.LOMBOK_INTERN_FIELD_MARKER); } if (useField) { psiFields.add(psiField); } } return psiFields; }