2013-10-25 3 views
0

사용자 지정 주석을 클래스에 넣은 다음 개발자가 메서드에 주석을 넣을 수 있습니까? 클래스 및 메서드에 대한 사용자 지정 주석

내가

  1. @Loggable 세 개의 사용자 정의 주석이 있다고 가정
  2. @MySQLLoggable 내가 @Loggble annotat을 넣을 때

  • @CassandraLoggable 클래스를 사용하면 개발자가 모든 메서드에 주석을 달도록 강제합니다. @MySQLLoggable 또는 @CassandraLoggable.

    나를 업데이트하십시오!

    편집을 할

    @Loggable // Suppose I put this annotation on class 
    public class Service { 
    
    
    @MySQLLoggable //eclipse forceful the developer 
           //to put @MySQLLoggable or @CassandraLoggable on sayHello() 
    public String sayHello() { 
        return null; 
    } 
    
    } 
    
  • 답변

    0

    사용 @interface

    public @interface foo { 
    
        String str(); 
    
        } 
    
    
    
        @foo(str = "str") 
        public class myClass{ 
    
        } 
    

    편집하면 IDE는 개발자가보다 잘 IDE를 읽을 다음 사용자 정의 주석을 사용 할 것을 원하는 경우

    public @interface loggable { 
    
        @loggable1(method) @loggable2(method)) 
        String foo(); 
    
        } 
    
    +0

    사용자 정의 주석을 작성하고 클래스에 넣기 만하면됩니다. 그것은 강력한 개발자는 –

    +0

    오, 미안 해요, 난 아직 제대로 이해하지만, 확실하지, 질문을 오해 클래스의 모든 메소드 (myClass가)의 다른 주석을 넣어하지 않습니다 공공 @interface의 loggable { \t \t @ loggable1 (메서드) @ loggable2 (메서드) \t 문자열 foo(); 당신이 클래스에 그것을 추가하는 경우 \t } 당신이 그들에 추가하도록 강요하고 있습니다. 당신이 스프링 MVC로 태그 눈치 – Jixi

    +0

    가) ... 재미를 –

    0

    죄송합니다 사양 및 가능한 사용자 정의. 나중에 실행하는 동안 메소드가 주석을 달지 않으면 리플렉션을 사용해야하는 경우 앱에서 예외를 throw합니다. 팩토리 패턴을 사용하여 객체를 생성하지 않아도됩니다. 따라서 메소드를 작성하기 전에 모든 메소드가 주석을 달고 있는지 확인한 다음 모든 메소드가 예외를 던지는지 확인할 수 있습니다. 다시 나는 반성을 사용해야한다고 생각한다. 이것은 단지 하나의 방법 일 뿐이다!

    +0

    을 내 편집 한 게시물을 내가 실제로 참조하십시오 (대답에 추가) 컨트롤러를 인스턴스화 할 때이 웹 프레임 워크가 어떻게 처리하는지 설명했습니다. – Anton

    +0

    인증 메커니즘에서 작업 할 때 비슷한 작업을 수행했습니다. 따라서 두 가지 역할이 있고 사용자가 모든 방법을 사용할 수 있지만 관리자 만 호출 할 수있는 기능을 원하면 제어기 및 메소드에 주석을 추가하십시오. 리플렉션을 사용하여 메소드가 필요한 역할에 속하는지 여부를 확인합니다. – Anton

    +0

    사실, 주석이 달린 클래스의 메소드에 @MySQLLoggable/@ CassandraLoggable 주석을 제공하지 않으면 프로그램이 컴파일되어서는 안됩니다. –

    관련 문제