>Java >java지도 시간 >Java 런타임 시 다른 클래스에서 주석 값을 읽을 수 있습니까?

Java 런타임 시 다른 클래스에서 주석 값을 읽을 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-26 06:15:02756검색

Can Annotation Values Be Read in a Different Class at Runtime in Java?

Java에서 주석 값 검색

Java 주석은 코드 요소에 대한 메타데이터를 제공하는 편리한 방법을 제공합니다. 특정 시나리오에서는 런타임에 이러한 주석 값에 액세스해야 할 수도 있습니다. 특히 다음과 같은 질문이 제기됩니다.

런타임 보존 기능이 있는 주석을 Java의 다른 클래스에서 읽을 수 있습니까?

주석에 다음과 같은 주석이 달린 경우 대답은 '예'입니다. @Retention(RetentionPolicy.RUNTIME). 이는 컴파일 이후에도 주석을 런타임에 사용할 수 있어야 함을 나타냅니다.

다음 코드 조각을 고려하세요.

<code class="java">@Column(columnName="firstname")
private String firstName;

@Column(columnName="lastname")
private String lastName;</code>

다른 클래스에서 주석 값을 검색하려면 리플렉션을 사용할 수 있습니다.

<code class="java">for (Field f : MyClass.class.getFields()) {
    Column column = f.getAnnotation(Column.class);
    if (column != null) {
        System.out.println(column.columnName());
    }
}</code>

비공개 필드에 액세스해야 하는 경우 getDeclaredFields()를 사용할 수 있습니다.

<code class="java">for (Field f : MyClass.class.getDeclaredFields()) {
    Column column = f.getAnnotation(Column.class);
    if (column != null) {
        System.out.println(column.columnName());
    }
}</code>

이 코드는 MyClass의 필드를 반복하면서 각 필드의 @Column 주석을 확인합니다. 주석이 발견되면 columnName 속성의 값을 인쇄합니다.

위 내용은 Java 런타임 시 다른 클래스에서 주석 값을 읽을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.