자바 주해 방식 반사

2079 단어 반사자바 주석
나의 블 로그 사이트:http://www.zeromike.net/
본문 주소:http://www.zeromike.net/?p=48
반 사 된 사용 장면 은 업무 코드 에 다양한 방법 이 있 고 클 라 이언 트 를 통 해 들 어 오 는 방법 이름과 매개 변 수 를 통 해 업무 수행 방법 을 호출 하 는 것 이다.나 는 여기에 표시 코드 만 쓰 고,다음 편 에 나 는 phonegap 플러그 인 을 어떻게 쓰 는 지 쓸 것 이다.
1.주해 코드
 
   import java.lang.annotation.ElementType;
   import java.lang.annotation.Retention;
   import java.lang.annotation.RetentionPolicy;
   import java.lang.annotation.Target;

   @Retention(RetentionPolicy.RUNTIME)//           class  (     )       ,           
   @Target(ElementType.METHOD)//                  
   public @interface MyAnnontion {

   }

 
2.업무 코드
public class MyTest {
	@MyAnnontion
	public void sendMessage(String message){
		System.out.println("send Message..."+message);
	}
	@MyAnnontion
	public void findAll(){
		System.out.println("find all...");
	}
}

 
3.테스트 코드
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class MyMain {

	public static void main(String[] args) throws IllegalAccessException,
			IllegalArgumentException, InvocationTargetException {
		Method[] method = MyTest.class.getMethods();
		MyTest test = new MyTest();
		for (Method m : method) {
			MyAnnontion annotation = m.getAnnotation(MyAnnontion.class);//         
			if (annotation != null) {
				int isParam = m.getParameterTypes().length;//        
				if (isParam == 0) {
					m.invoke(test);
				} else {
					m.invoke(test, new Object[] { "abc" });
				}
			}
		}
	}

}

 
 
결과:
 
find all...
send Message...abc
 
링크
zeromike

좋은 웹페이지 즐겨찾기