From 81fddd7bc32ab1841e422a7bb92eb94aae83e598 Mon Sep 17 00:00:00 2001 From: Ali Dehghani Date: Sun, 18 Jul 2021 20:13:45 +0430 Subject: [PATCH] BAEL-4233: Why doesn't a missing annotation cause a ClassNotFoundException at runtime? (#11024) --- .../main/java/com/baeldung/missingannotation/A.java | 8 ++++++++ .../main/java/com/baeldung/missingannotation/B.java | 10 ++++++++++ .../main/java/com/baeldung/missingannotation/C.java | 9 +++++++++ .../main/java/com/baeldung/missingannotation/D.java | 4 ++++ 4 files changed, 31 insertions(+) create mode 100644 core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/A.java create mode 100644 core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/B.java create mode 100644 core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/C.java create mode 100644 core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/D.java diff --git a/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/A.java b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/A.java new file mode 100644 index 0000000000..daf9f60b96 --- /dev/null +++ b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/A.java @@ -0,0 +1,8 @@ +package com.baeldung.missingannotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface A { +} diff --git a/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/B.java b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/B.java new file mode 100644 index 0000000000..a86b2f72ec --- /dev/null +++ b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/B.java @@ -0,0 +1,10 @@ +package com.baeldung.missingannotation; + +@A +@C(D.class) +public class B { + + public static void main(String[] args) { + System.out.println("It worked"); + } +} diff --git a/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/C.java b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/C.java new file mode 100644 index 0000000000..2adf2b42fa --- /dev/null +++ b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/C.java @@ -0,0 +1,9 @@ +package com.baeldung.missingannotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface C { + Class value(); +} diff --git a/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/D.java b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/D.java new file mode 100644 index 0000000000..7c534fa682 --- /dev/null +++ b/core-java-modules/core-java-annotations/src/main/java/com/baeldung/missingannotation/D.java @@ -0,0 +1,4 @@ +package com.baeldung.missingannotation; + +public class D { +}