Package freemarker.template.utility
Class ClassUtil
- java.lang.Object
-
- freemarker.template.utility.ClassUtil
-
public class ClassUtil extends Object
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ClassboxingClassToPrimitiveClass(Class boxingClass)The exact reverse ofprimitiveClassToBoxingClass(java.lang.Class).static ClassforName(String className)Similar toClass.forName(java.lang.String), but attempts to load through the thread context class loader.static StringgetFTLTypeDescription(TemplateModel tm)Returns the type description of a value with FTL terms (not plain class name), as it should be used in type-related error messages and for debugging purposes.static StringgetShortClassName(Class pClass)Same asgetShortClassName(pClass, false).static StringgetShortClassName(Class pClass, boolean shortenFreeMarkerClasses)Returns a class name without "java.lang." and "java.util." prefix, also shows array types in a format likeint[]; useful for printing class names in error messages.static StringgetShortClassNameOfObject(Object obj)static StringgetShortClassNameOfObject(Object obj, boolean shortenFreeMarkerClasses)getShortClassName(Class, boolean)called withobject.getClass(), but returns the fictional class nameNullfor anullvalue.static booleanisNumerical(Class type)Tells if a type is numerical; works both for primitive types and classes.static ClassprimitiveClassToBoxingClass(Class primitiveClass)
-
-
-
Method Detail
-
forName
public static Class forName(String className) throws ClassNotFoundException
Similar toClass.forName(java.lang.String), but attempts to load through the thread context class loader. Only if thread context class loader is inaccessible, or it can't find the class will it attempt to fall back to the class loader that loads the FreeMarker classes.- Throws:
ClassNotFoundException
-
getShortClassName
public static String getShortClassName(Class pClass)
Same asgetShortClassName(pClass, false).- Since:
- 2.3.20
-
getShortClassName
public static String getShortClassName(Class pClass, boolean shortenFreeMarkerClasses)
Returns a class name without "java.lang." and "java.util." prefix, also shows array types in a format likeint[]; useful for printing class names in error messages.- Parameters:
pClass- can benull, in which case the method returnsnull.shortenFreeMarkerClasses- iftrue, it will also shorten FreeMarker class names. The exact rules aren't specified and might change over time, but right now,freemarker.ext.beans.NumberModelfor example becomes tof.e.b.NumberModel.- Since:
- 2.3.20
-
getShortClassNameOfObject
public static String getShortClassNameOfObject(Object obj, boolean shortenFreeMarkerClasses)
getShortClassName(Class, boolean)called withobject.getClass(), but returns the fictional class nameNullfor anullvalue.- Since:
- 2.3.20
-
getFTLTypeDescription
public static String getFTLTypeDescription(TemplateModel tm)
Returns the type description of a value with FTL terms (not plain class name), as it should be used in type-related error messages and for debugging purposes. The exact format is not specified and might change over time, but currently it's something like"string (wrapper: f.t.SimpleScalar)"or"sequence+hash+string (ArrayList wrapped into f.e.b.CollectionModel)".- Since:
- 2.3.20
-
primitiveClassToBoxingClass
public static Class primitiveClassToBoxingClass(Class primitiveClass)
- Parameters:
primitiveClass- AClasslikeint.type,boolean.type, etc. If it's not a primitive class, or it'snull, then the parameter value is returned as is. Note that performance-wise the method assumes that it's a primitive class.- Since:
- 2.3.21
-
boxingClassToPrimitiveClass
public static Class boxingClassToPrimitiveClass(Class boxingClass)
The exact reverse ofprimitiveClassToBoxingClass(java.lang.Class).- Since:
- 2.3.21
-
isNumerical
public static boolean isNumerical(Class type)
Tells if a type is numerical; works both for primitive types and classes.- Parameters:
type- can't benull- Since:
- 2.3.21
-
-