java
[java] 클래스명, 필드명 가져오기
JH..Y
2021. 10. 25. 14:16
728x90
@Data
public class Action(){
private String action1;
private String action2;
}
public class ClassName(){
public void test(){
Action action = new Action();
action.setAction2("액션2값넣기");
String className = action.getClass().getSimpleName().toUpperCase();
// className 출력 => ACTION
String fieldName = "";
// Action 이라는 클래스안에 사용하고 있는 필드명 가져오기
for(Field field : action.getClass().getDeclaredFields()){
// private 멤버변수 값을 read/write 하기 위해선 setAccessible 메소드를 통해 해당 필드 값에 접근을 허용이 필요
// private 멤버변수인데 setAccessible를 사용안하고 접근하면 IllegalAccessException 예외발생
field.setAccessible(true); // private 멤버변수 접근가능하게해줌
// 필드명
String name = field.getName();
//필드내부값
Object value = filed.get(action)
if(!ObjectUtils.isEmpty(value)){
fieldName = name;
}
}
// fieldName 출력 => action2
}
}
728x90