디시인사이드 갤러리

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

갤러리 본문 영역

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

폐인의세계갤로그로 이동합니다. 2011.11.16 20:42:04
조회 791 추천 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/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
288999 C언어좀 도와주세요.. [3] ㅁㄴㅇㄹ(168.115) 11.11.18 93 0
288998 우왕 레포트 끝났다 땡칠도사갤로그로 이동합니다. 11.11.18 62 0
288997 어미를 다시 생각하게 만드는 노래.swf [3] Stan(220.244) 11.11.18 83 0
288995 어셈블리 __fastcall 질문점 하겠습니다. ㅇㅇ(121.162) 11.11.18 50 0
288994 개발자 하면서..... [2] ¥군사마갤로그로 이동합니다. 11.11.18 118 0
288993 윈7 왜케 업데이트가 많지 [3] 금고래갤로그로 이동합니다. 11.11.18 61 0
288992 으헝.ㅅ. [1] 풀개미'ㅅ'갤로그로 이동합니다. 11.11.18 35 0
288991 힛갤 ㅋㅋㅋ 간만에 쳐웃음 ㅋㅋ [성대아싸]갤로그로 이동합니다. 11.11.18 61 0
288990 형들 지금 고민이야 [3] 서보모터갤로그로 이동합니다. 11.11.18 70 0
288989 성님들 여자는 원래 먼저 문자 안합니깡 ? [5] 123(218.49) 11.11.18 105 1
288985 아파치 최신버전 몇이에요? [3] 켄터키(218.147) 11.11.18 86 0
288984 버진데 와루이카 !! [3] ㅁㄴㄻㄹ갤로그로 이동합니다. 11.11.18 87 0
288983 오우 졸작 좋은 시나리오로 되었음 ㅎㄷㄷ [5] [성대아싸]갤로그로 이동합니다. 11.11.18 234 0
288982 땡칠은 또 봅니다. [2] iljeomobolt갤로그로 이동합니다. 11.11.18 101 0
288981 땡칠은 봅니다. [1] iljeomobolt갤로그로 이동합니다. 11.11.18 60 0
288980 SI 를 편하게 하는 방법 iljeomobolt갤로그로 이동합니다. 11.11.18 187 0
288979 우리나라 회사중에... [1] 땡칠도사갤로그로 이동합니다. 11.11.18 116 0
288977 SI는 뭐가 생명이냐? [6] 거칠게갤로그로 이동합니다. 11.11.18 191 0
288976 이직 준비하려구 토익 봤었는데 [5] ㄱㄱ(112.214) 11.11.18 161 0
288975 이제 대기업 하청 파견업체는 끝이다 [1] 거칠게갤로그로 이동합니다. 11.11.18 137 0
288974 자살춤이랑 곽노현팀장 동일인물? [3] 붹ㄺ(125.133) 11.11.18 122 0
288973 안뇽 횽들? 땡칠도사갤로그로 이동합니다. 11.11.18 50 0
288971 개쉙기님.... [4] Sayrin갤로그로 이동합니다. 11.11.18 84 0
288969 자바 초 간단한 array 질문!! 맞추면 상있슴 [4] 케이갤로그로 이동합니다. 11.11.18 89 0
288968 형님들 부끄럼없이 살고 계십니까? [9] ㅁㄴㅇㅁ(121.66) 11.11.18 181 0
288967 c언어 프로그래밍 고수님들 질문있습니다ㅠㅠ [3] 개허접(175.210) 11.11.18 93 0
288966 곽노현팀장 은 봄니다. 햏햏했(115.90) 11.11.18 70 0
288964 메모장 만들려고하는데 =_= 어제보다 발전된... [7] Sayrin갤로그로 이동합니다. 11.11.18 138 0
288958 ada 구조체 선언하는법 아는형.. [1] (61.102) 11.11.18 68 0
288955 아니 대한민국은 이상한게 왜 범법자가 자꾸 풀려나? [1] 이모군(175.114) 11.11.18 60 0
288950 임원면접이면 누구들옴?? [2] [성대아싸]갤로그로 이동합니다. 11.11.18 126 0
288949 교수님 변덕이 너무 심하다 [5] 허접(203.234) 11.11.18 110 0
288947 인터넷 프로그래밍 하시는분들 질문점요~ [10] Zzz(222.234) 11.11.18 122 0
288946 알탱이 대용으로 뭐가 좋겠음? [1] 이모군(175.114) 11.11.18 39 0
288944 (다시조공) 방금 카페24에서 확인해봤는데.....64bit광호스팅 .. [4] 캐초보(124.63) 11.11.18 144 0
288943 우리나라 대학들...너무 쓸데없는 과목이 많고 전공도 살짝 건드리다 [8] 분당살람갤로그로 이동합니다. 11.11.18 275 0
288942 니들은 프로그래밍 잘하냐?? [9] 개쉛기갤로그로 이동합니다. 11.11.18 234 0
288941 (조공) 64bit광호스팅 이라는 개념 좀 세워줄 횽 없나여? [5] 캐초보(124.63) 11.11.18 136 0
288940 프갤 C 언어 하는 성님들은 이책은 안봅니까? [1] 알탱o갤로그로 이동합니다. 11.11.18 100 0
288939 ada언어 문법 있는곳 아는형.. [4] (61.102) 11.11.18 111 0
288938 국비학원에서 공부한 애들도 나중엔 잘해.. [9] 알탱o갤로그로 이동합니다. 11.11.18 452 0
288937 형들 qt 질문 하나만 [7] 네임드(141.223) 11.11.18 109 0
288936 컴퓨터공은 뭐함? [4] 캐릭갤로그로 이동합니다. 11.11.18 121 0
288935 이런 기술도 프로그래밍과 관련있을까? [4] ㅇㅇ(116.41) 11.11.18 138 0
288934 원격 궁금한게 있어요 핡핡 [3] 궁금해(203.250) 11.11.18 81 0
288932 21세기는 국비학원 출신의 시대 [8] 분당살람갤로그로 이동합니다. 11.11.18 349 0
288931 여기 계신분들은 학력이 어떻게 되세요? [9] (114.108) 11.11.18 316 0
288930 프로그래머의 꿈의 연봉은 1400 그렇다면 디자이너의 꿈의 연봉은 [1] 비밀의계곡갤로그로 이동합니다. 11.11.18 150 0
288929 여자친구가 iPhone 쓰는 애들은 iMessage 이거 조심해라. [5] 외계달팽갤로그로 이동합니다. 11.11.18 193 0
288927 하나더 질문! 헤헤.. [3] ㅇㅇ(116.41) 11.11.18 70 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2