투케이2K

371. (java/자바) [간단 소스] Class getDeclaredMethods 사용해 메소드 Method 파라미터 및 리턴 정보 확인 - Name , ReturnType 본문

Java

371. (java/자바) [간단 소스] Class getDeclaredMethods 사용해 메소드 Method 파라미터 및 리턴 정보 확인 - Name , ReturnType

투케이2K 2026. 7. 6. 14:56
728x90
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java / Kotlin


- 개발 툴 : AndroidStudio


- 구분 : 간단 소스 / Class / Method


- 사전) 👉 getDeclaredMethods 간략 설명 : 

  >> getDeclaredMethods 는 클래스에 직접 선언된 모든 메서드를 가져옵니다.

  >> getDeclaredMethods 특징 

    - ✅ public 조회 가능
    - ✅ private 조회 가능
    - ✅ protected 조회 가능
    - ✅ default(package-private) 조회 가능
    - ❌ 부모 클래스의 메서드는 포함 안됨


- 사전) 👉 getMethod 간략 설명 : 

  >> getMethod 는 지정한 이름과 파라미터를 가진 public 메서드 1개를 가져옵니다.

  >> getMethod 특징 

    - ✅ public만 조회
    - ✅ 부모 클래스까지 조회
    - ❌ private 조회 불가
    - ❌ protected 조회 불가


- 사전) 👉 getParameterTypes 간략 설명 : 

  >> getParameterTypes 는 Method 객체로부터 파라미터 타입 목록을 가져옵니다.

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

    appExplanationButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            S_Log._W_(ACTIVITY_NAME + " : appExplanationButton : 테스트 동작 수행", null);
            try {


                // ------------------------------------------------
                // TODO 특정 클래스에 포함 된 메소드 정보 확인
                // ------------------------------------------------
                // TODO 로그 예시 출력
                // ------------------------------------------------
                //I/System.out: Method Name : setKeySetPreference /  Return Type : void
                //I/System.out: setKeySetPreference : Input Params : boolean
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : java.lang.String
                //I/System.out: setKeySetPreference : Input Params : int
                // ------------------------------------------------

                Class className = A_Test_Activity_Start.class; // 정보를 확인하려는 특정 클래스 지정

                for (Method m : className.getDeclaredMethods()) {
                    String methodName = m.getName();

                    System.out.println("Method Name : " + methodName + " / " + " Return Type : " + m.getReturnType()); // 메소드 명칭 정보 확인

                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // 버전 체크
                        for (Parameter p : m.getParameters()) {
                            System.out.println(methodName + " : Input Params : " + p.getType().getName());
                        }
                    }
                }

            }
            catch (Exception e){
                e.printStackTrace();
            }
        }
    });

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ 88. (java/자바) 메소드 개념 설명

https://kkh0977.tistory.com/98

https://blog.naver.com/kkh0977/222199283429?trackingCode=blog_bloghome_searchlist


▶️ 72. (java/자바) 접근 제어자 설명 (private, public, default, protected)

https://kkh0977.tistory.com/78

https://blog.naver.com/kkh0977/222197257207?trackingCode=blog_bloghome_searchlist


▶️ 113. (java/자바) 추상클래스, 인터페이스 개념 설명 (abstract, interface)

https://kkh0977.tistory.com/146

https://blog.naver.com/kkh0977/222203686130?trackingCode=blog_bloghome_searchlist


▶️ 114. (java/자바) abstract 추상클래스 사용해 메소드 명 정의 및 자식 클래스에서 메소드 내용 구현(동물소리 재정의)실시

https://kkh0977.tistory.com/147

https://blog.naver.com/kkh0977/222203695562?trackingCode=blog_bloghome_searchlist


▶️ 150. (java/자바) 내부 클래스 (inner class) 생성 및 메소드 호출 실시

https://kkh0977.tistory.com/360

https://blog.naver.com/kkh0977/222235364849?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments