NullableAnnotationUtils { public static boolean isAnnotatedWithStrongNullness(SymbolMetadata metadata) { return metadata.annotations().stream() .map(AnnotationInstance::symbol) .map(Symbol::type) .anyMatch(NullableAnnotationUtils::isStrongNullableAnnotation); } private  NullableAnnotationUtils(); static Optional<AnnotationTree> nullableAnnotation(ModifiersTree modifiers); static Optional<AnnotationTree> nonNullAnnotation(ModifiersTree modifiers); static boolean isAnnotatedNullable(SymbolMetadata metadata); static boolean isAnnotatedNonNull(Symbol symbol); static boolean isAnnotatedWithStrongNullness(SymbolMetadata metadata); @CheckForNull static String nonNullAnnotation(SymbolMetadata metadata); @CheckForNull static String nonNullAnnotation(Symbol symbol); static boolean isGloballyAnnotatedParameterNullable(Symbol.MethodSymbol method); static boolean isGloballyAnnotatedParameterNonNull(Symbol.MethodSymbol method); @CheckForNull static String nonNullAnnotationOnParameters(Symbol.MethodSymbol method);  }
@Test void testStrongNullness() { assertThat(isAnnotatedWithStrongNullness(getSymbol("nullable1").metadata())).isFalse(); assertThat(isAnnotatedWithStrongNullness(getSymbol("nullable2").metadata())).isTrue(); }