File tree Expand file tree Collapse file tree 2 files changed +25
-1
lines changed
main/java/io/avaje/inject/generator
test/java/io/avaje/inject/generator/models/valid Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -402,7 +402,8 @@ static TypeElement lazyProxy(Element element) {
402402 : APContext .asTypeElement (((ExecutableElement ) element ).getReturnType ());
403403
404404 if (type .getModifiers ().contains (Modifier .FINAL )
405- || !type .getKind ().isInterface () && !Util .hasNoArgConstructor (type )) {
405+ || !type .getKind ().isInterface () && !Util .hasNoArgConstructor (type )
406+ || Util .hasFinalMethods (type )) {
406407
407408 return BeanTypesPrism .getOptionalOn (element )
408409 .map (BeanTypesPrism ::value )
@@ -417,6 +418,13 @@ static TypeElement lazyProxy(Element element) {
417418 return type ;
418419 }
419420
421+ private static boolean hasFinalMethods (TypeElement type ) {
422+ return ElementFilter .methodsIn (type .getEnclosedElements ()).stream ()
423+ .filter (x -> !x .getModifiers ().contains (Modifier .STATIC ))
424+ .filter (x -> !x .getModifiers ().contains (Modifier .PRIVATE ))
425+ .anyMatch (m -> m .getModifiers ().contains (Modifier .FINAL ));
426+ }
427+
420428 static boolean hasNoArgConstructor (TypeElement beanType ) {
421429 return ElementFilter .constructorsIn (beanType .getEnclosedElements ()).stream ()
422430 .anyMatch (e -> e .getParameters ().isEmpty () && !e .getModifiers ().contains (Modifier .PRIVATE ));
Original file line number Diff line number Diff line change 1+ package io .avaje .inject .generator .models .valid ;
2+
3+ import java .security .SecureRandom ;
4+
5+ import io .avaje .inject .Bean ;
6+ import io .avaje .inject .Factory ;
7+ import io .avaje .inject .Lazy ;
8+
9+ @ Lazy
10+ @ Factory
11+ public class RandomFactory {
12+ @ Bean
13+ public SecureRandom secureRandom () {
14+ return new SecureRandom ();
15+ }
16+ }
You can’t perform that action at this time.
0 commit comments