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 Class
boxingClassToPrimitiveClass(Class boxingClass)
The exact reverse ofprimitiveClassToBoxingClass(java.lang.Class)
.static Class
forName(String className)
Similar toClass.forName(java.lang.String)
, but attempts to load through the thread context class loader.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.static String
getShortClassName(Class pClass)
Same asgetShortClassName(pClass, false)
.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.static String
getShortClassNameOfObject(Object obj)
static String
getShortClassNameOfObject(Object obj, boolean shortenFreeMarkerClasses)
getShortClassName(Class, boolean)
called withobject.getClass()
, but returns the fictional class nameNull
for anull
value.static boolean
isNumerical(Class type)
Tells if a type is numerical; works both for primitive types and classes.static Class
primitiveClassToBoxingClass(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.NumberModel
for 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 nameNull
for anull
value.- 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
- AClass
likeint.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
-
-