728x90
반응형
java.lang.reflect.Field
public List<CodeVo> getParentCodeList( int sysCode, String filedName, String value) {
List<CodeVo> codeList = getParentCodeList(sysCode);
try {
Field field = CodeVo.class.getDeclaredField(filedName);
field.setAccessible(true);
Object paramValue;
if(field.getType() == int.class) {
paramValue = Integer.parseInt(value);
} else if(field.getType() == String.class) {
paramValue = value;
} else {
throw new RuntimeException("code value type error");
}
return codeList.stream()
.filter(code -> {
try {
Object fieldValue = field.get(code);
if(fieldValue.equals(paramValue)) {
return true;
}
return false;
} catch (IllegalArgumentException|IllegalAccessException e) {
throw new RuntimeException(e);
} }).collect(Collectors.toList());
} catch (NoSuchFieldException e) {
throw new RuntimeException("지원하지 않는 fieldName", e);
} catch (SecurityException e) {
throw new RuntimeException(e);
}
}
728x90
반응형
'개발중 > Java' 카테고리의 다른 글
카테고리 완성 기록 (0) | 2021.04.21 |
---|---|
카테고리 반환 코드 기록 (0) | 2021.04.19 |
Map 람다식 (0) | 2021.04.16 |
카테고리 부모 자식 매핑 (0) | 2021.04.13 |
json 문서 변환 (java) (0) | 2021.04.12 |