3535 */
3636public class TypeDefinitionBuilder {
3737
38- private static final ThreadLocal <ArrayList <TypeBuilder >> builders ;
39-
40- static {
41- builders = new ThreadLocal <ArrayList <TypeBuilder >>();
42- builders .set (new ArrayList <TypeBuilder >());
43- builders .get ().add (new ArrayTypeBuilder ());
44- builders .get ().add (new CollectionTypeBuilder ());
45- builders .get ().add (new MapTypeBuilder ());
46- builders .get ().add (new EnumTypeBuilder ());
47- }
38+ private static final ThreadLocal <ArrayList <TypeBuilder >> builders = ThreadLocal .withInitial (() -> {
39+ ArrayList <TypeBuilder > l = new ArrayList <>();
40+ l .add (new ArrayTypeBuilder ());
41+ l .add (new CollectionTypeBuilder ());
42+ l .add (new MapTypeBuilder ());
43+ l .add (new EnumTypeBuilder ());
44+ return l ;
45+ });
4846
4947 public static TypeDefinition build (Type type , Class <?> clazz , Map <Class <?>, TypeDefinition > typeCache ) {
5048 TypeBuilder builder = getGenericTypeBuilder (type , clazz );
51- TypeDefinition td = null ;
49+ TypeDefinition td ;
5250 if (builder != null ) {
5351 td = builder .build (type , clazz , typeCache );
5452 } else {
@@ -66,14 +64,14 @@ private static TypeBuilder getGenericTypeBuilder(Type type, Class<?> clazz) {
6664 return null ;
6765 }
6866
69- private Map <Class <?>, TypeDefinition > typeCache = new HashMap <Class <?>, TypeDefinition >();
67+ private Map <Class <?>, TypeDefinition > typeCache = new HashMap <>();
7068
7169 public TypeDefinition build (Type type , Class <?> clazz ) {
7270 return build (type , clazz , typeCache );
7371 }
7472
7573 public List <TypeDefinition > getTypeDefinitions () {
76- return new ArrayList <TypeDefinition >(typeCache .values ());
74+ return new ArrayList <>(typeCache .values ());
7775 }
7876
7977}
0 commit comments