디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Java에서 메소드명으로 메소드 호출하기 (Reflection API)

폐인의세계갤로그로 이동합니다. 2011.11.16 20:42:04
조회 793 추천 0 댓글 6

오늘도 아무도 관심없겠지만 혼자 공부하면서
알아두면 좋을지도 모를 것들을 올려봄

<Java에서 Reflection API를 사용하면 클래스의 메소드를 메소드명으로 호출 할 수 있다.>

이걸 공부하게 된 계기는 나한테 어떤 txt 파일이 주어져 있는데
그 파일에 실행해야할 작업들이 나열되어 있음
그런데 그 작업들 이름이 내 클래스의 메소드와 이름이 같음
그래서 Reflection API를 사용하면 편할것 같아서 사용했음

주의점: 이런식의 코드는 특별한 상황이 아니면 권장하지 않음. 쓸데없이 쓰면 귀싸대기 맞을수도...

<예제 코드>

package testpackage;

import java.lang.reflect.Method;

public class ReflectionTest {
    
    public static void main(String[] args) {
        Callee callee = new Callee();
        Method methodA;
        Method methodB;
        Method methodC;
        try {
            methodA = Callee.class.getMethod("printA", String.class);
            methodB = Callee.class.getMethod("printB");
            methodC = Callee.class.getMethod("printC", Integer.class, Double.TYPE);
            methodA.invoke(callee, "Test");
            methodB.invoke(callee);
            methodC.invoke(null, 100, 100.0);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class Callee {
    
    public void printA(String str) {
        System.out.println("A is called");
        System.out.println(str);
    }

    public void printB() {
        System.out.println("B is called");
    }
    
    public static void printC(Integer n, double d) {
        System.out.println("C is called");
        System.out.println(n);
        System.out.println(d);
    }
}


출력결과
A is called
Test
B is called
C is called
100
100.0

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이제는 의미 없어진 것 같은 시상식은? 운영자 25/12/01 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
289581 여기 옵큐 종자는 없냐 Adelposs갤로그로 이동합니다. 11.11.22 21 0
289580 매일 하루하루가 운지하다 [1] Adelposs갤로그로 이동합니다. 11.11.22 35 0
289579 언제또 천안까지 가냐 Adelposs갤로그로 이동합니다. 11.11.22 24 0
289576 성대아싸옹 좋겠다 ㅁㄴㄻㄹ갤로그로 이동합니다. 11.11.22 83 0
289575 파일 읽을때 읽고싶은줄부터 어떻게읽음? [1] ㄲㄹ(59.31) 11.11.22 51 0
289574 형들 안드로이드 에러인데 도와줘 ㅠㅠ [7] (112.148) 11.11.22 74 0
289573 계좌제로 취업확정이라는 학원다닐려고 하는데... [9] 리눅슽(121.186) 11.11.22 163 0
289572 횽아들 이 소스좀봐줘 ㅠㅠ.. [12] 트고코갤로그로 이동합니다. 11.11.22 109 0
289571 헤헤 그럼 다중구조체 포인터좀 질문드릴게요. [2] 동천(116.34) 11.11.22 57 0
289570 php 은근 골때리는거 [3] monoless갤로그로 이동합니다. 11.11.22 97 0
289569 C++ 컴파일러는 영문판쓰나여? [1] 안들호이드(175.210) 11.11.22 40 0
289567 2차원배열을 함수로 전달할때 질문입니다. [3] 샐리(221.141) 11.11.22 44 0
289566 횽들 c언어 이 에러는 뭐야? [7] 우히이(221.159) 11.11.22 91 0
289565 안녕하세요. 혹시 쉬운질문을 해도 되나요? [3] 동천(116.34) 11.11.22 58 0
289564 ncurses.h 라이브러리 구현 [3] 마타버터갤로그로 이동합니다. 11.11.22 49 0
289563 내일은 자바 AWT를 할까 하는데 [2] 막장갤신학생갤로그로 이동합니다. 11.11.22 54 0
289562 MFC 좇 116.44(203.229) 11.11.22 49 0
289561 근데말이야 [5] 궁금한데(125.141) 11.11.22 80 0
289560 프로그래밍배우고싶은데 [22] 안들호이드(175.210) 11.11.22 197 0
289559 그래픽스공부 도와주세요 ㅠㅠ 대머리독수리(118.222) 11.11.22 107 0
289558 it는 관심있는 사람이 하는거라캣다 [1] 므해?갤로그로 이동합니다. 11.11.22 67 0
289557 아까 슈팅게임 물어봤는데 하나만 더 알려주라. [3] Sakuntala갤로그로 이동합니다. 11.11.22 70 0
289556 XOROX횽 왜 글 날림 McHello갤로그로 이동합니다. 11.11.22 50 0
289554 하악 이건 꼭 봐야행 막장갤신학생갤로그로 이동합니다. 11.11.22 66 0
289553 자바 게임 타일맵 만드는데...고수님들 답변좀.. [4] 자바허접....(218.238) 11.11.22 90 0
289548 도대체 플밍의 기본이란게 뭐야? [5] 곰곰곰갤로그로 이동합니다. 11.11.22 93 0
289547 나도 갤투 종잔데 [9] -ㅂ-(183.102) 11.11.22 76 0
289545 자바 스크립트로 네이버나 다음 모바일에 있는 수평 스크롤 구현 111(218.39) 11.11.22 56 0
289544 오늘따라 왜 이리 갤스2빠들이 많냐 [7] 전간디갤로그로 이동합니다. 11.11.21 56 0
289543 그래도 다음 맛폰은 옵큐2 갈거임 [3] 시불라미갤로그로 이동합니다. 11.11.21 46 0
289542 MFC 공부할려고 학원 다닐려고 하는데 [6] ..(14.36) 11.11.21 91 0
289541 진짜 삼성이나 LG 위대하지 않냐? 스마트폰으로 세계 제패할듯 [5] 흐킁(211.222) 11.11.21 89 0
289540 LG전자나 LG통신사나 이번 LTE폰에 승부를 건다는데 [6] 막장갤신학생갤로그로 이동합니다. 11.11.21 77 0
289539 전산이 그건 좋지않냐? 말초신경을 자극시키는 이슈가 끊임없이 생김 [2] ㅋㅋ(211.222) 11.11.21 48 0
289537 갤럭시2가 존내 히트상품이긴 하넹 [5] 시불라미갤로그로 이동합니다. 11.11.21 75 0
289536 phpmyadmin 쓰면 도스명령어처럼 쓰는 일 거의 없나요? 원더걸스(218.147) 11.11.21 38 0
289535 MFC 배울떄는 지랄병같더니 API코드로 짜니까 재밌다 [3] 김 딜러(211.211) 11.11.21 78 0
289534 안드로이드폰이 게임 없는거 같아도 사실은 존내 많다. [6] 알탱o갤로그로 이동합니다. 11.11.21 95 0
289533 여긴무사함?? [7] 고정닉을써주세요갤로그로 이동합니다. 11.11.21 46 0
289532 이건 왜 검색하는거죠 [5] [성대아싸]갤로그로 이동합니다. 11.11.21 119 0
289531 슈팅게임쪽으로 잘 아는형 있어? [5] Sir.Lancelot갤로그로 이동합니다. 11.11.21 75 0
289530 프로그램배울려면얼마나걸림? [2] ㅁㄴㅇ(221.165) 11.11.21 62 0
289528 과외 알바나 하고싶다 elwlwlwk갤로그로 이동합니다. 11.11.21 15 0
289527 니들이 컴퓨터 존나 잘 다룬다는 놈들이냐? [8] 1(121.182) 11.11.21 131 0
289525 객체지향 입문하는 뉴비인데... [5] 객체(119.68) 11.11.21 71 0
289524 횽들 질문좀 Phpmyadmin에서 삭제된 db 복구 방법 [4] ㅇㅇ(119.195) 11.11.21 87 0
289522 유동이 대학 질문좀 [3] 유동닉(121.157) 11.11.21 62 0
289521 형들 이거좀 봐주세요... [6] 늅늅울기(112.170) 11.11.21 113 0
289520 형들 개발자로 업종 변경 하고 싶은데.. 1수(110.12) 11.11.21 52 0
289518 ㅇㅈㄱㅊㅎ차단당했네 꿀레(14.33) 11.11.21 26 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2