> Java > Java베이스 > Java 주석 - Java 자체 구성 파일

Java 주석 - Java 자체 구성 파일

向前冲!
풀어 주다: 2022-01-07 13:41:51
원래의
2209명이 탐색했습니다.

작가의 메시지

안녕하세요 여러분, 이번 글은 제가 배운 지식을 요약해서 여러분과 공유하고 싶습니다. 다음에는 Java, Python 시리즈를 발표하겠습니다. 및 기타 초보 관련 기사를 체계적으로 공유하고 있으며, 기초를 다져야만 더 나아갈 수 있습니다. 여러분 모두 저에게 조언을 해주시기를 바랍니다! 더 이상 고민하지 말고 실용적인 내용으로 넘어가겠습니다! (침해 사항이 있는 경우 이 플랫폼을 통해 연락하여 삭제하세요.)

Foreword

XML은 대부분의 프로그래머에게 구성 파일로 사랑받지만 일부 사람들은 주석을 선호합니다. 개인적으로 무엇을 선택해야 할지 생각합니다. 요점은 각 기술의 탄생의 본질을 이해하는 것입니다. XML은 구성 파일과 코드가 "느슨하게 결합된" 코드 설명이지만 XML이 너무 많은 경우 구성 파일은 관리하기 어렵고 IDE는 XML 구성 파일의 정확성을 확인할 수 없습니다. 테스트의 어려움을 높이기 위해 확인이 수행되는 반면 주석은 애플리케이션을 더 쉽게 만드는 것이 목적인 "긴밀하게 결합된" 코드 설명입니다. "제로" 구성을 달성하면서 확장합니다.

1. 주석이란

주석은 코드의 메타데이터(메타데이터: 데이터를 설명하는 데이터)입니다. 주석을 사용하면 프로그램 개발자가 원래 논리를 변경하지 않고 이를 수행할 수 있습니다. 정보는 소스 파일에 포함됩니다. 다음 코드 조각을 살펴보세요.

Java 주석 - Java 자체 구성 파일

초보자의 경우 비슷한 코드를 보고 @Override가 대체 무엇인지 궁금해하는 경우가 많습니다. 실제로 이는 주석입니다. @Override를 toString() 메서드에 추가하면 해당 주석 아래의 toString() 메서드가 상위 클래스 메서드를 재구성해야 함을 의미합니다.

이것을 보고 다음에는 다양한 주석을 소개할 것이라고 생각하시는 분들도 계실 것 같은데요? ! 나는 아니에요!

2. 주석 유형의 문법 표준

주석은 Java의 특별한 유형입니다. 다음으로 주석 유형을 디자인하는 방법을 살펴보겠습니다.

1. 구문 표준:

public   @interface   注解类型名称
{
    [   数据类型    变量名 ()    [   default  初始值   ];   ]
}
로그인 후 복사

참고:

1) "[ ]" 안의 내용은 선택 사항입니다. 주석이 내부적으로 비어 있으면 현재 주석이 식별 주석이라는 의미입니다.

2) 주석은 지능적으로 변수를 포함해야 하며 메서드는 포함할 수 없습니다.

3) 주석은 코드 내 특수 표시이므로 단독으로 사용할 수 없습니다. 클래스나 인터페이스와 함께 사용해야 합니다.

4) 주석 유형을 사용하여 프로그램 요소(프로그램 요소: 클래스, 메소드, 멤버 변수 등)에 대한 메타데이터를 설정할 수 있습니다.

2. 사례: 주석 유형을 Testable로 설계하고 이 주석으로 식별되는 메서드는 테스트 가능한 메서드입니다. 주석은 내부적으로 비어 있으며 이는 해당 주석이 식별 주석임을 나타냅니다.

public  @interface  Testable
{
}
로그인 후 복사
public class Test

{

      @Testable

       public void info()

      {

              System.out.println(“我是info方法”);

      }

      public void info1()

      {

              System.out.println(“我是info1方法”);

      }

}
로그인 후 복사

@Testable 주석은 info 메서드가 실행 가능한 메서드임을 나타내기 위해 이 클래스에 추가되었습니다. 이는 해당 메서드가 실행 가능한 메서드이고 이 주석을 달성하려는 경우 동적 상호 작용 기능이 없다는 점만 설명합니다. 함수를 지원하는 Java 애플리케이션을 작성해야 합니다. 특정 코드는 다음 코드를 참조하세요.

클래스의 내부 구조를 분석하고 싶다면 어떤 기술을 사용하여 이를 달성할 수 있는지 생각해 보세요.

답은 다음과 같습니다. 반사 메커니즘(다음 단락의 반사 메커니즘에 대해 잘 모르는 분들을 위해 아래 코드에 따라 디버그하세요. 반사 메커니즘에 대한 구체적인 지식은 나중에 공개됩니다).

java.lang.reflect 패키지에 리플렉션 기능이 포함된 일반적인 도구 클래스: Method(메서드 클래스), Field(필드 클래스), Constructor(생성자 메서드 클래스) 등

위 도구 클래스는 런타임 주석을 읽는 기능을 확장합니다. 즉, java.lang.annotation.AnnotatedElement 인터페이스를 구현합니다. 이 인터페이스는 모든 프로그램 요소의 상위 인터페이스이며 이 인터페이스는 주석 정보를 얻기 위한 관련 메서드를 제공합니다.

  • getAnnotation(Class annotationClass): 프로그램 요소에 지정된 유형의 주석을 반환합니다. 이 유형의 주석이 없으면 null을 반환합니다.

  • Annotation [] getAnnotations(): 프로그램 요소에 모든 주석이 있습니다.

  • Annotation은 모든 주석의 상위 인터페이스입니다. 기본적으로 모든 인터페이스 유형이 이 인터페이스를 구현합니다.

  • boolean isAnnotationPresent(Class annotationClass): 프로그램 요소에 지정된 유형의 주석이 포함되어 있는지 여부를 결정합니다. 존재하는 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.

코드 참조:

Test 클래스를 구문 분석하고 @Testable로 표시된 메서드를 실행합니다.

import java.lang.reflect.Method;
public class UseTest
{
        public static void main(String[] args)throws Exception
        {
                  Class c=Class.forName(“Test”);
                  Object o=c.newInstance();
                  Method[] me=c.getDeclaredMethods();
                  for(Method temp:me)
                  {
                           if(temp.isAnnotationPresent(Testable.class))
                                   temp.invoke(o,new Object[0]);
                  }
         }
}
로그인 후 복사

자, 이제 프로그램을 실행하고 효과를 확인해 보세요!

. . . . . . .

유난히 말문이 막히는 편이신가요(ˉ▽ˉ;)..., 코드를 실행해 보면 프로그램에 우리가 생각했던 것과는 다른 결과가 나오지 않는 것을 발견할 수 있나요? !

다음에 무슨 일이 일어날지 알고 싶다면 다음번에 분석 내용을 읽어보세요!

3. 요약:

다음으로 친구들이 마스터해야 할 지식 포인트를 정리해 보겠습니다.

1. XML과 주석의 차이점

3. 주석 디자인의 구문 표준

5. java.lang.annotation.AnnotationElement의 방법 및 기능

IV , 결론

급하게 끝낸 이유를 말씀드리겠습니다. 글을 처음 써봐서 내용 형식이 어떻게 될지는 모르겠습니다. 남은 관련 지식에 대한 지원에 감사드립니다.

위 내용은 Java 주석 - Java 자체 구성 파일의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿