/** * Get the information for an array type * * @param type the array type * @return the info */ @Override protected TypeInfo getGenericArrayType(GenericArrayType type) { Type compType = type.getGenericComponentType(); TypeInfo componentType = getTypeInfo(compType); return new ArrayInfoImpl(componentType); }
/** * Create a new ArrayInfo. * * @param componentType the component type */ public ArrayInfoImpl(TypeInfo componentType) { if (componentType == null) throw new IllegalArgumentException("Null component type."); this.componentType = componentType; StringBuilder builder = new StringBuilder(); builder.append("["); TypeInfo temp = componentType; while (temp.isArray()) { builder.append("["); temp = ((ArrayInfo) temp).getComponentType(); } if (PrimitiveInfo.class.equals(temp.getClass())) { String encodedName = PrimitiveInfo.getPrimativeArrayType(temp.getName()); builder.append(encodedName); } else { builder.append("L").append(temp.getName()).append(";"); } name = builder.toString(); calculateHash(); }
/** * Get the information for an array type * * @param type the array type * @return the info */ @Override protected TypeInfo getGenericArrayType(GenericArrayType type) { //Look in the cache first String genericName = GenericsUtil.getGenericName(type); ClassLoader cl = GenericsUtil.findClassLoader(type); Map<String, TypeInfo> cache = getClassLoaderCache(cl); TypeInfo info = cache.get(genericName); if (info != null) return info; //Create the wildcard type info TypeInfo raw = getTypeInfo(type.getGenericComponentType()); info = new ArrayInfoImpl(raw); //Cache the wildcard type info cache.put(genericName, info); return info; }
result = new ArrayInfoImpl(componentType); init(result, clazz);
result = new ArrayInfoImpl(componentType);