여러 클래스에서 사용하고자하는 다음과 같은 일반 함수가 있습니다. 문제는 헬퍼 클래스에서 이것을 호출하면 표시 여부 때문에 필드 객체를 얻을 수 없다는 것입니다.헬퍼 클래스의 필드에 Java 리플렉션
public <T> List<T> descendingServices(Class<T> cls) {
List<T> descendings = new ArrayList<>();
for (Field field : EnvironmentServiceImpl.class.getDeclaredFields()) {
Object obj;
try {
obj = field.get(this);
if (cls.isInstance(obj)) {
T descending = (T) obj;
descendings.add(descending);
}
} catch (IllegalAccessException e) {
}
}
return descendings;
}
현장에서 setAccessible
을 사용하지 않고 어떻게 든 해결할 수 있습니까?
nope. 편집 : 새로운 객체를 얻은 것처럼 보이므로 다시 되돌릴 필요가 없습니다. –
참조 : https://stackoverflow.com/questions/10638826/java-reflection-impact-of- 접근 가능한 유적 –