Question

What will happen when a Class or Interface who is annotated with an annotation of RetentionPolicy#RUNTIME is loaded in old JREs?

@FunctionalInterface // Java8 @Retention(RetentionPolicy.RUNTIME)
public interface MyFunctional {
}

Is above interface or any class implement that interface can run in JRE 7 or older?

Was it helpful?

Solution

Annotations are handled slightly different than other normal classes. If the JVM cannot load the annotation class for a runtime annotation, this annotation will be dropped and you cannot find hints anymore that there was an annotation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top