자바 사용자 정의 주석 및 사용
                                            
 14252 단어  【Java】-----【Java기초
                    
지난 편 에 서 는 주해 가 무엇 인지 와 그 원리 에 대해 간단 한 소개 (전송 문) 를 했 고 이 손 으로 쓴 것 은 간단 한 주해 예 시 를 실현 했다.
주해 의 사용 장면
주해 에 어느 정도 익숙해 진 후에 주 해 는 도대체 무슨 소 용이 있 습 니까?
자바 홈 페이지 정의:
         ,             ,                   。                 。
       ,    :
-         :                    
-         :                    、Html           。
-       :                      
  주 해 는 설명 한 코드 자체 의 일부분 이 아니다. 즉, 주 해 는 태그 와 유사 하고 그 자 체 를 바 꾸 지 않 으 며 특정한 사물 에 대한 기능 일 뿐이다.개발 자가 Annotation 을 사용 하여 클래스, 방법, Field 등 구성원 을 수식 한 후에 이런 Annotation 은 스스로 효력 이 발생 하지 않 고 개발 자가 해당 하 는 코드 를 제공 하여 Annotation 정 보 를 추출 하고 처리 해 야 합 니 다.이러한 처리 에서 Annotation 을 추출 하고 처리 하 는 코드 를 통칭 하여 APT (Annotation Processing Tool) 라 고 한다.
수기 주해
수요: 하나의 계산 류 는 가감 승제 방법 을 가지 고 있 으 며, 실행 방법 이 있 을 때 프로그램 에 이상 이 있 는 지 확인 하고, 있 으 면 이상 정 보 를 표시 합 니 다.
주해 류
@Retention(RetentionPolicy.RUNTIME)
public @interface Check {
}
  계산 류
계산 클래스 (Numeration) 는 가감 승제, 네 가지 방법 을 정의 합 니 다. 그 중에서 나눗셈 나 누 기 는 0 이 고 여기 서 이상 이 발생 할 수 있 습 니 다.
public class Numeration {
    //  
    @Check
    public void add() {
        System.out.println("1+1=" + 1 + 1);
    }
    //  
    @Check
    public void subtract() {
        System.out.println("1-1=" + (1 - 1));
    }
    //  
    @Check
    public void multiply() {
        System.out.println("1*2=" + (1 *2));
    }
    //  
    @Check
    public void divide() {
        System.out.println("1/0=" + 1 /0);
    }
}
  테스트 클래스
public class testAnn {
    public static void main(String[] args) {
    	//      
        Numeration numeration = new Numeration();
        //               
        Method[] methods = numeration.getClass().getDeclaredMethods();
		//  StringBuilder     
        StringBuilder sb = new StringBuilder();
        //error        
        AtomicInteger error = new AtomicInteger();
		//  lambda    methods
        Arrays.asList(methods).forEach((
                method -> {
                	//        @Check  
                    if (method.isAnnotationPresent(Check.class)) {
                        try {
                        	//          true
                            method.setAccessible(true);
                            //  numeration   
                            method.invoke(numeration, null);
                        } catch (IllegalAccessException e) {
//                            e.printStackTrace();
                        } catch (InvocationTargetException e) {
//                            e.printStackTrace();
							//        ,  StringBuilder    
                            error.getAndIncrement();
                            sb.append("   ")
                                    .append(method.getClass())
                                    .append("    "+"   :")
                                    .append(e.getCause().getMessage());
                        }
                    }
                }
                ));
        sb.append("    "+"     :")
                .append(error);
        System.out.println(sb);
    }
}
  출력 결과
1+1=11
1*2=2
1-1=0
   class java.lang.reflect.Method       :/ by zero         :1
  간단 한 사용자 정의 주석 구현 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 주석 분석주 해 는 자바 SE 5.0 버 전이 도입 되 기 시작 한 개념 으로 자바 소스 코드 에 대한 설명 이 며 메타 데이터 (데 이 터 를 설명 하 는 데이터) 입 니 다. 마이크로 서비스, 분포 식 주해 가 유행 하면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.