Description
InjectionResolver.getBeanCacheKey(Type, String, Annotation...) creates:
1) calls java.lang.reflect.Type.toString() -> java.lang.Class.toString() : -> first StringBuilder
2) StringBuilder cacheKey = new StringBuilder() -> second StringBuilder
3) java.lang.annotation.Annotation.toString() -> many annotation types (for example javax.enterprise.util.AnnotationLiteral.toString())) create toString() output with another StringBuilder() -> third StringBuilder
Questions:
toString() methods are normally non-semantics and produce a debug String output. OWB InjectionResolver.getBeanCacheKey uses them to create a key: but are toString() really suitable for this? What if two different annotations produce same toString output? Can be a.getClass().getName() used for 3) ?
Can be a small class Key better (in terms of memory allocation and GC collection) in this situation?