java 불법 접근 이상 예시 구현

사고 분석:
먼저 클 라 스 를 사용 하여 String 류 를 대표 하 는 클래스 대상 을 얻 은 다음 클 라 스 류 의 getDeclared Fields()방법 으로 모든 구성원 변 수 를 얻 고 Field 형 배열 에 값 을 부여 합 니 다.즉,String 류 의 모든 도 메 인 을 얻 을 수 있 습 니 다.foreach()를 사용 하여 모든 도 메 인 을 반복 하고 Field 클래스 의 getName()방법 으로 이 구성원 변수의 이름 을 얻 습 니 다.도 메 인 이름 이 hash 라면 Field 클래스 의 getInt(Object obj)방법 으로 지정 한 대상 의 int 형식 인 이 구성원 변수의 값 을 얻 으 려 고 합 니 다.IllegalArgument Exception 이상 과 IllegalAccessException 이상 을 순서대로 포착 합 니 다.코드 는 다음 과 같 습 니 다:

import java.lang.reflect.Field;

public class ExceptionTest {
    public static void main(String[] args) {
        Class<?> clazz = String.class;                        // String
        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields) {                            //         
            System.out.println(field);
            if (field.getName().equals("hash")) {               // hash
                try {
                    System.out.println(field.getInt("hash"));   // hash
                } catch (IllegalArgumentException e) {      // IllegalArgumentException
                    System.out.println(e);
                } catch (IllegalAccessException e) {            // IllegalAccessException
                    System.out.println(e);
                }
            }
        }
    }
}

좋은 웹페이지 즐겨찾기