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

Anwendung von Schnittstellen und abstrakten Klassen in Java-Annotationen

PHPz
PHPzOriginal
2024-05-02 11:48:011157Durchsuche

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();
}

使用这个注解:

@MyAnnotation("Hello, world!")
public class MyClass {}

抽象类作为注解类型

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

public abstract @interface MyAnnotation {
    String value();
}

使用这个注解:

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

实战案例

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

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("参数不能为空!");
        }
        // 使用参数...
    }

}

使用这个注解:

public class Client {

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

}

运行这段代码会抛出 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!

Stellungnahme:
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