Heim > Java > javaLernprogramm > Anwendung von Schnittstellen und abstrakten Klassen in Java-Annotationen

Anwendung von Schnittstellen und abstrakten Klassen in Java-Annotationen

PHPz
Freigeben: 2024-05-02 11:48:01
Original
1155 Leute haben es durchsucht

Annotationen können in Java über Schnittstellen oder abstrakte Klassen definiert werden, um Metadaten für Klassen, Methoden oder Felder bereitzustellen. Schnittstelle als Annotationstyp: Implementieren Sie die java.lang.annotation.Annotation-Schnittstelle, z. B.: @MyAnnotation("Hallo, Welt!"). Abstrakte Klasse als Annotationstyp: Erweitern Sie die abstrakte Klasse java.lang.annotation.Annotation, z. B.: @MyAnnotation (Wert „Hallo, Welt!“) Praktischer Fall: Verwenden Sie Anmerkungen, um Methodenparameter zu überprüfen, z. B. @NotNull, um zu überprüfen, ob die Parameter ungleich Null sind, andernfalls wird eine Ausnahme ausgelöst.

接口和抽象类在 Java 注解中的应用

Schnittstellen und abstrakte Klassen in Annotationen

Annotationen werden in Java verwendet, um dem Compiler Metadaten über Klassen, Methoden und Felder bereitzustellen. Als Annotationstypen können Schnittstellen und abstrakte Klassen verwendet werden, sodass Sie spezifische Einschränkungen für Annotationen definieren können.

Schnittstelle als Annotationstyp

Schnittstelle kann als Annotationstyp verwendet werden, indem die Schnittstelle java.lang.annotation.Annotation implementiert wird. Zum Beispiel: java.lang.annotation.Annotation 接口。例如:

public @interface MyAnnotation {
    String value();
}
Nach dem Login kopieren

使用这个注解:

@MyAnnotation("Hello, world!")
public class MyClass {}
Nach dem Login kopieren

抽象类作为注解类型

抽象类也可以作为注解类型,通过扩展 java.lang.annotation.Annotation 抽象类。例如:

public abstract @interface MyAnnotation {
    String value();
}
Nach dem Login kopieren

使用这个注解:

@MyAnnotation(value="Hello, world!")
public class MyClass {}
Nach dem Login kopieren

实战案例

在以下实战案例中,我们将使用注解来验证方法参数:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
public @interface NotNull {
}

public class MyClass {

    public void myMethod(@NotNull String param) {
        // 验证参数 non-null
        if (param == null) {
            throw new IllegalArgumentException("参数不能为空!");
        }
        // 使用参数...
    }

}
Nach dem Login kopieren

使用这个注解:

public class Client {

    public static void main(String[] args) {
        MyClass myClass = new MyClass();
        myClass.myMethod("Hello, world!");
    }

}
Nach dem Login kopieren

运行这段代码会抛出 IllegalArgumentException,因为 myMethodrrreee

Verwenden Sie diese Annotation: 🎜rrreee🎜🎜Abstrakte Klassen als Annotationstypen🎜🎜🎜Abstrakte Klassen können auch als Annotationstypen verwendet werden, indem Sie die Zusammenfassung java.lang.annotation.Annotation erweitern Klasse. Zum Beispiel: 🎜rrreee🎜 Verwenden Sie diese Annotation: 🎜rrreee🎜🎜 Praktischer Fall 🎜🎜🎜 Im folgenden praktischen Fall verwenden wir Annotationen, um Methodenparameter zu überprüfen: 🎜rrreee🎜 Verwenden Sie diese Annotation: 🎜rrreee🎜 Wenn Sie diesen Code ausführen, wird IllegalArgumentException, weil das Argument der Methode myMethod keinen Wert ungleich Null bereitgestellt hat. 🎜

Das obige ist der detaillierte Inhalt vonAnwendung von Schnittstellen und abstrakten Klassen in Java-Annotationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage