Spring-JSP

[Java-Basic] Method.Invoke()란? 가벼운 사용방법(메서드실행)

Jeong Jeon
반응형

메서드명만 받아서 정의되어있는 메서드중 내가 원하는 메서드만 실행시키고 싶을때 사용한다.

(보통 그냥 메서드를 실행시키면 되지만, Client단에서 메서드를 각기 다른것으로 호출하는데, 같은 Service를 탈때 사용했다.)

 

//내가 정의해둔 Dao에서 메서드들을 가져온다.
Method[] methodList = testDao.getClass().getMethods();

//가져온 메서드중에서 메서드명이 같은것을 실행시킨다.
for(Method m : methodList){
	if(m.getName().equals(전달받은이름)){
    	결과 = m.invoke(testDao,전달파라미터);
    }
}

자 여기서 우리는 해당 Service를 공통으로 사용하는데, 클라이언트는 각기 다른상황이라고 생각해보자.

원래 였으면 if문이나 switch-case문을 사용하여 분기를 쳐서 dao를 실행시켰을 것이다.

 

하지만 Client단에서 받아야 하는 결과가 동일한 폼으로, 하지만 데이터는 해당 Client에 맞게 받아야한다는 상황이라면

위와 같은 코드를 통해 Service를 하나로, 그리고 데이터만 바꿔줄수있도록 메서드명을 Client에서 보내서 Service단에서 실행시킬수 있다.

 

java 에서 지원하는 여러가지 메서드들을 아직도 제대로 사용하지 못했다..

화이팅

반응형