public class ReflectionUtilImpl extends ReflectionUtilLimitedImpl implements ReflectionUtil
reflection
.getInstance()
Modifier and Type | Field and Description |
---|---|
private static CharFilter |
CHAR_FILTER |
private static ReflectionUtil |
instance |
private static String |
WEB_INF_CLASSES
The prefix of resources in WAR-files.
|
NO_ANNOTATIONS, NO_TYPES
NO_ARGUMENTS, NO_PARAMETERS
Constructor and Description |
---|
ReflectionUtilImpl()
The constructor.
|
Modifier and Type | Method and Description |
---|---|
int |
compare(Class<?> class1,
Class<?> class2)
This method compares the given classes.
|
<T> GenericType<T> |
createGenericType(Class<T> type)
This method creates the
GenericType representing the given type . |
GenericType<?> |
createGenericType(Type type)
This method creates the
GenericType representing the given type . |
GenericType<?> |
createGenericType(Type type,
Class<?> definingType)
This method creates the
GenericType representing the given type in the context of the given
definingType . |
GenericType<?> |
createGenericType(Type type,
GenericType<?> definingType)
This method creates the
GenericType representing the given type in the context of the given
definingType . |
<E> GenericType<List<E>> |
createGenericTypeOfList(GenericType<E> elementType) |
<K,V> GenericType<Map<K,V>> |
createGenericTypeOfMap(GenericType<K> keyType,
GenericType<V> valueType) |
<E> GenericType<Set<E>> |
createGenericTypeOfSet(GenericType<E> elementType) |
protected void |
doInitialized()
This method is invoked at the end of the actual
initialization . |
Set<String> |
findClassNames(String packageName,
boolean includeSubPackages)
This method finds all classes that are located in the package identified by the given
packageName . |
Set<String> |
findClassNames(String packageName,
boolean includeSubPackages,
Filter<? super String> filter)
This method finds all classes that are located in the package identified by the given
packageName . |
Set<String> |
findClassNames(String packageName,
boolean includeSubPackages,
Filter<? super String> filter,
ClassLoader classLoader)
This method finds all classes that are located in the package identified by the given
packageName . |
void |
findClassNames(String packageName,
boolean includeSubPackages,
Set<String> classSet)
This method finds all classes that are located in the package identified by the given
packageName . |
protected void |
findClassNames(String packageName,
boolean includeSubPackages,
Set<String> classSet,
Filter<? super String> filter,
ClassLoader classLoader) |
Set<String> |
findResourceNames(String packageName,
boolean includeSubPackages,
Filter<? super String> filter)
This method finds all resources that are located in the package identified by the given
packageName . |
Set<String> |
findResourceNames(String packageName,
boolean includeSubPackages,
Filter<? super String> filter,
ClassLoader classLoader)
This method finds all resources that are located in the package identified by the given
packageName . |
Set<DataResource> |
findResources(String absoluteClasspath)
This method finds all resources that match to the given
absoluteClasspath . |
Set<DataResource> |
findResources(String packageName,
boolean includeSubPackages,
Filter<? super String> filter)
This method finds all resources that are located in the package identified by the given
packageName . |
Set<DataResource> |
findResources(String packageName,
boolean includeSubPackages,
Filter<? super String> filter,
ClassLoader classLoader)
This method finds all resources that are located in the package identified by the given
packageName . |
Class<?> |
getArrayClass(Class<?> componentType)
|
Class<?>[] |
getClasses(Object[] objects)
This method gets the
classes of the given objects. |
protected ClassLoader |
getDefaultClassLoader()
This method gets the default
ClassLoader to use. |
protected ClassLoader |
getDefaultClassLoader(Class<?> fallbackClass)
This method gets the default
ClassLoader to use. |
protected Type |
getGenericDeclaration(Class<?> ancestor,
Class<?> descendant)
This method walks up the
Class -hierarchy from descendant up to ancestor and returns the
sub-class or sub-interface of ancestor on that hierarchy-path. |
static ReflectionUtil |
getInstance()
This method gets the singleton instance of this
ReflectionUtil . |
Method |
getParentMethod(Class<?> inheritingClass,
String methodName,
Class<?>[] parameterTypes)
This method gets the method
identified by methodName and
parameterTypes that is NOT declared but inherited by the given
declaringClass . |
Method |
getParentMethod(Method method)
This method gets the parent method of the given
method . |
<T> T |
getStaticField(Class<?> type,
String fieldName,
Class<T> fieldType,
boolean exactTypeMatch,
boolean mustBeFinal,
boolean inherit)
|
<T> T |
getStaticFieldOrNull(Class<?> type,
String fieldName,
Class<T> fieldType,
boolean exactTypeMatch,
boolean mustBeFinal,
boolean inherit) |
protected Class<?> |
getSubClass(Class<?> ancestor,
Class<?> descendant)
This method walks up the
Class -hierarchy from descendant up to ancestor and returns the
sub-class or sub-interface of ancestor on that hierarchy-path. |
boolean |
isMarkerInterface(Class<?> interfaceClass)
This method determines if the given
interfaceClass is a marker-interface (e.g. |
Set<Class<?>> |
loadClasses(Collection<String> qualifiedClassNames)
This method loads the classes given as
Collection of fully qualified names by
qualifiedClassNames and returns them as Set . |
Set<Class<?>> |
loadClasses(Collection<String> classNames,
ClassResolver classResolver,
Filter<? super Class<?>> filter)
This method loads the classes given as
Collection of names by classNames using the given
classResolver . |
Set<Class<?>> |
loadClasses(Collection<String> qualifiedClassNames,
Filter<? super Class<?>> filter)
|
String |
toString(Type type)
This method gets the string representation of a
Type . |
void |
toString(Type type,
Appendable appendable,
Visitor<Class<?>> classFormatter)
This method gets the string representation of a
Type . |
String |
toStringSimple(Type type)
This method gets a compact string representation of a
Type . |
private Type |
toType(CharSequenceScanner parser,
ClassResolver resolver,
Type owner)
This method parses the given
type as generic Type . |
Type |
toType(String type)
|
Type |
toType(String type,
ClassResolver resolver)
|
void |
visitResourceNames(String packageName,
boolean includeSubPackages,
ClassLoader classLoader,
ResourceVisitor visitor)
This method does the actual magic to locate resources on the classpath.
|
private static void |
visitResources(File packageDirectory,
StringBuilder qualifiedNameBuilder,
int qualifiedNamePrefixLength,
ResourceVisitor visitor)
This method scans the given
packageDirectory recursively for resources. |
getNonPrimitiveType
createLogger, doInitialize, getLogger
getInitializationState, initialize
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getNonPrimitiveType
private static final String WEB_INF_CLASSES
private static ReflectionUtil instance
private static final CharFilter CHAR_FILTER
public static ReflectionUtil getInstance()
ReflectionUtil
. Cdi.GET_INSTANCE
before using.protected void doInitialized()
AbstractComponent
initialization
. It is called when
AbstractComponent.initialize()
is invoked for the first time after AbstractComponent.doInitialize()
is completed and
initialization-state
has changed to initialized
. super.
AbstractComponent.doInitialized()
.doInitialized
in class AbstractComponent
public Class<?>[] getClasses(Object[] objects)
ReflectionUtil
classes
of the given objects.getClasses
in interface ReflectionUtil
objects
- is an array containing the objects for that the classes are requested.class
of the object from the given array at the same position or null
, if
that object is null
.public <T> GenericType<T> createGenericType(Class<T> type)
GenericTypeFactory
GenericType
representing the given type
. type
, lower bound
and
upper bound
of the returned GenericType
will all be identical to
the given type
. Type
where the given type
was
defined
you should use
GenericTypeFactory.createGenericType(Type, GenericType)
instead to get a more precise result. createGenericType
in interface GenericTypeFactory
createGenericType
in class ReflectionUtilLimitedImpl
T
- is the generic type of the Class
to convert.type
- is the Type
to represent.GenericType
.public GenericType<?> createGenericType(Type type)
GenericTypeFactory
GenericType
representing the given type
. type
is a Class
, the methods behaves like GenericTypeFactory.createGenericType(Class)
. Type
where the given type
was defined (e.g. the Class
where you retrieved
the given type
from as parameter, return-type or field-type) you should use
GenericTypeFactory.createGenericType(Type, GenericType)
instead to get a more precise result.createGenericType
in interface GenericTypeFactory
createGenericType
in class ReflectionUtilLimitedImpl
type
- is the Type
to represent.GenericType
.public GenericType<?> createGenericType(Type type, GenericType<?> definingType)
GenericTypeFactory
GenericType
representing the given type
in the context of the given
definingType
. Now if you ask your self why all this instead of just usingReflectionUtil
util =getInstance()
; Class<?> myClass = getSomeClass(); GenericType definingType = util.createGenericType
(myClass);Method
myMethod = findSomeMethod(myClass); Type returnType = myMethod.getGenericReturnType()
; GenericType type = util.createGenericType
(returnType, definingType); Class<?> returnClass = type.GenericType.getRetrievalClass()
;
myMethod.
getReturnType()
? Read the javadoc of GenericType
to get
the answer.mmm-util-pojo
which allows to use this features at a higher level and therefore much easier.createGenericType
in interface GenericTypeFactory
createGenericType
in class ReflectionUtilLimitedImpl
type
- is the Type
to represent.definingType
- is the GenericType
where the given type
is defined in. It is needed to resolve
TypeVariable
s.GenericType
.GenericTypeFactory.createGenericType(Type, Class)
public GenericType<?> createGenericType(Type type, Class<?> definingType)
GenericTypeFactory
GenericType
representing the given type
in the context of the given
definingType
. createGenericType
(type,
createGenericType
(definingType))
createGenericType
in interface GenericTypeFactory
createGenericType
in class ReflectionUtilLimitedImpl
type
- is the Type
to represent.definingType
- is the Class
where the given type
is defined in. It is needed to resolve
TypeVariable
s.GenericType
.public <E> GenericType<List<E>> createGenericTypeOfList(GenericType<E> elementType)
createGenericTypeOfList
in interface GenericTypeFactory
createGenericTypeOfList
in class ReflectionUtilLimitedImpl
E
- the generic type of the List
elements
.elementType
- the GenericType
to be bound for <E>.GenericType
.public <K,V> GenericType<Map<K,V>> createGenericTypeOfMap(GenericType<K> keyType, GenericType<V> valueType)
createGenericTypeOfMap
in interface GenericTypeFactory
createGenericTypeOfMap
in class ReflectionUtilLimitedImpl
K
- the generic type of the Map
keys
.V
- the generic type of the Map
values
.keyType
- the GenericType
to be bound for <K>.valueType
- the GenericType
to be bound for <V>.GenericType
.public <E> GenericType<Set<E>> createGenericTypeOfSet(GenericType<E> elementType)
createGenericTypeOfSet
in interface GenericTypeFactory
createGenericTypeOfSet
in class ReflectionUtilLimitedImpl
E
- the generic type of the Set
elements
.elementType
- the GenericType
to be bound for <E>.GenericType
.protected Class<?> getSubClass(Class<?> ancestor, Class<?> descendant)
Class
-hierarchy from descendant
up to ancestor
and returns the
sub-class or sub-interface of ancestor
on that hierarchy-path. ancestor
is an interface
, the hierarchy may NOT be unique.
In such case it will be unspecified which of the possible paths is used.ancestor
- is the super-class or super-interface of descendant
.descendant
- is the sub-class or sub-interface of ancestor
.descendant
up to ancestor
.protected Type getGenericDeclaration(Class<?> ancestor, Class<?> descendant)
Class
-hierarchy from descendant
up to ancestor
and returns the
sub-class or sub-interface of ancestor
on that hierarchy-path. ancestor
is an interface
, the hierarchy may NOT be unique.
In such case it will be unspecified which of the possible paths is used.ancestor
- is the super-class or super-interface of descendant
.descendant
- is the sub-class or sub-interface of ancestor
.descendant
up to ancestor
.public Class<?> getArrayClass(Class<?> componentType)
ReflectionUtil
getArrayClass
in interface ReflectionUtil
componentType
- is the component type
.array
-class.public Type toType(String type)
ReflectionUtil
toType
in interface ReflectionUtil
type
- is the string representation of the requested type.ReflectionUtil.toType(String, ClassResolver)
public Type toType(String type, ClassResolver resolver)
ReflectionUtil
toType
in interface ReflectionUtil
type
- is the string representation of the requested type.resolver
- is used to resolve classes.private Type toType(CharSequenceScanner parser, ClassResolver resolver, Type owner)
type
as generic Type
. StringParser
but we want to avoid the dependency on util-misc
.parser
- is the string-parser on the type string to parse.resolver
- is used to resolve classes.owner
- is the owner-type
or null
.public String toString(Type type)
ReflectionUtil
Type
. Instead of Type
.toString()
it
returns Class.getName()
if the type is a Class
.toString
in interface ReflectionUtil
type
- is the type to get as string.type
.public String toStringSimple(Type type)
ReflectionUtil
Type
. Instead of ReflectionUtil.toString(Type)
this method
will write simple names
of Class
es.toStringSimple
in interface ReflectionUtil
type
- is the type to get as string.type
.public void toString(Type type, Appendable appendable, Visitor<Class<?>> classFormatter)
ReflectionUtil
Type
. Instead of Type
.toString()
it
returns Class.getName()
if the type is a Class
.toString
in interface ReflectionUtil
type
- is the type to get as string.appendable
- is where to append
the string representation to.classFormatter
- is a Visitor
that gets called for each Class
and has to
append
as string-representation of the visited Class
to the
appendable
.public int compare(Class<?> class1, Class<?> class2)
ReflectionUtil
compare
in interface ReflectionUtil
class1
- is the first class.class2
- is the second class.0
if both classes are equal to each other.1
if class1
inherits from class2
.-1
if class2
inherits from class1
.Integer.MIN_VALUE
otherwise.public boolean isMarkerInterface(Class<?> interfaceClass)
ReflectionUtil
interfaceClass
is a marker-interface (e.g. Serializable
or Cloneable
). A marker-interface is also called a tagging-interface.isMarkerInterface
in interface ReflectionUtil
interfaceClass
- is the Class
reflecting the interface to check.true
if the given interfaceClass
is a marker-interface, false
otherwise (if regular
interface or no interface at all).public <T> T getStaticField(Class<?> type, String fieldName, Class<T> fieldType, boolean exactTypeMatch, boolean mustBeFinal, boolean inherit) throws NoSuchFieldException, IllegalAccessException, IllegalArgumentException
ReflectionUtil
getStaticField
in interface ReflectionUtil
T
- the templated type the requested field is assigned to.type
- is the class or interface containing the requested field.fieldName
- is the name
of the requested field.fieldType
- is the type the requested field is assigned to. Therefore the field declaration (!) must be
assignable to this type.exactTypeMatch
- - if true
, the fieldType
must match exactly the type of the static field,
else if false
the type of the field may be a sub-type of fieldType
or one of the types may
be primitive
while the other is the according
object-type.mustBeFinal
- - if true
, an IllegalArgumentException
is thrown if the specified static field
exists but is NOT final
, false
otherwise.inherit
- if true
the field may be inherited from a super-class
or
super-interface
of type
, else if false
the field is only
accepted if it is declared in type
.NoSuchFieldException
- if the given type
has no field with the given fieldName
.IllegalAccessException
- if you do not have permission to read the field (e.g. field is private).IllegalArgumentException
- if the field is NOT static (or final) or has the wrong type.public <T> T getStaticFieldOrNull(Class<?> type, String fieldName, Class<T> fieldType, boolean exactTypeMatch, boolean mustBeFinal, boolean inherit) throws IllegalArgumentException
getStaticFieldOrNull
in interface ReflectionUtil
T
- the templated type the requested field is assigned to.type
- is the class or interface containing the requested field.fieldName
- is the name
of the requested field.fieldType
- is the type the requested field is assigned to. Therefore the field declaration (!) must be
assignable to this type.exactTypeMatch
- - if true
, the fieldType
must match exactly the type of the static field,
else if false
the type of the field may be a sub-type of fieldType
or one of the types may
be primitive
while the other is the according
object-type.mustBeFinal
- - if true
, an IllegalArgumentException
is thrown if the specified static field
exists but is NOT final
, false
otherwise.inherit
- if true
the field may be inherited from a super-class
or
super-interface
of type
, else if false
the field is only
accepted if it is declared in type
.null
if the field does NOT exist or is NOT
accessible.IllegalArgumentException
- if the field is NOT static (or final) or has the wrong type.public Method getParentMethod(Method method) throws SecurityException
ReflectionUtil
method
. The parent method is the method overridden (is the
sense of Override
) by the given method
or directly inherited from an interface
.getParentMethod
in interface ReflectionUtil
method
- is the method.null
if no such method exists.SecurityException
- if access has been denied by the SecurityManager
.public Method getParentMethod(Class<?> inheritingClass, String methodName, Class<?>[] parameterTypes) throws SecurityException
ReflectionUtil
identified
by methodName
and
parameterTypes
that is NOT declared
but inherited by the given
declaringClass
.getParentMethod
in interface ReflectionUtil
inheritingClass
- is the class inheriting the requested method.methodName
- is the name
of the requested method.parameterTypes
- is the signature
of the requested method.null
if no such method exists.SecurityException
- if access has been denied by the SecurityManager
.ReflectionUtil.getParentMethod(Class, String, Class[])
private static void visitResources(File packageDirectory, StringBuilder qualifiedNameBuilder, int qualifiedNamePrefixLength, ResourceVisitor visitor)
packageDirectory
recursively for resources.packageDirectory
- is the directory representing the Package
.qualifiedNameBuilder
- is a StringBuilder
containing the qualified prefix (the Package
with a
trailing dot).qualifiedNamePrefixLength
- the length of the prefix used to rest the string-builder after reuse.visitor
- is the ResourceVisitor
.public Set<String> findClassNames(String packageName, boolean includeSubPackages)
ReflectionUtil
packageName
. findClassNames
in interface ReflectionUtil
packageName
- is the name of the Package
to scan.includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.Set
with the fully qualified names of all requested classes.public void findClassNames(String packageName, boolean includeSubPackages, Set<String> classSet)
ReflectionUtil
packageName
. findClassNames
in interface ReflectionUtil
packageName
- is the name of the Package
to scan.includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.classSet
- is where to add the classes.public Set<String> findClassNames(String packageName, boolean includeSubPackages, Filter<? super String> filter)
ReflectionUtil
packageName
. findClassNames
in interface ReflectionUtil
packageName
- is the name of the Package
to scan.includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.filter
- is used to filter
the Class
-names to be added to the resulting
Set
. The Filter
will receive fully qualified class-names
as argument
(e.g. "net.sf.mmm.reflect.api.ReflectionUtil").Set
with the fully qualified names of all requested classes.public Set<String> findClassNames(String packageName, boolean includeSubPackages, Filter<? super String> filter, ClassLoader classLoader)
ReflectionUtil
packageName
. findClassNames
in interface ReflectionUtil
packageName
- is the name of the Package
to scan.includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.filter
- is used to filter
the Class
-names to be added to the resulting
Set
. The Filter
will receive fully qualified class-names
as argument
(e.g. "net.sf.mmm.reflect.api.ReflectionUtil").classLoader
- is the explicit ClassLoader
to use.Set
with the fully qualified names of all requested classes.protected void findClassNames(String packageName, boolean includeSubPackages, Set<String> classSet, Filter<? super String> filter, ClassLoader classLoader) throws RuntimeIoException
packageName
- is the name of the Package
to scan.includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.classSet
- is where to add the classes.filter
- is used to filter
the Class
-names to be added to the resulting
Set
. The Filter
will receive fully qualified class-names
as argument
(e.g. "net.sf.mmm.reflect.api.ReflectionUtil").classLoader
- is the explicit ClassLoader
to use.RuntimeIoException
- if the operation failed with an I/O error.findClassNames(String, boolean, Filter, ClassLoader)
public Set<String> findResourceNames(String packageName, boolean includeSubPackages, Filter<? super String> filter)
ReflectionUtil
packageName
. findResourceNames
in interface ReflectionUtil
packageName
- is the name of the Package
to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.filter
- is used to filter
the resources. The Filter
will receive fully
qualified classpath entries as argument (e.g. "net/sf/mmm/util/reflect/beans-util-reflect.xml"). Typically
you will exclude resources that end with ".class" or only accept resources that end with ".xml".Set
with the fully qualified names of all requested resources (e.g.
"net/sf/mmm/util/reflect/beans-util-reflect.xml").public Set<String> findResourceNames(String packageName, boolean includeSubPackages, Filter<? super String> filter, ClassLoader classLoader)
ReflectionUtil
packageName
. findResourceNames
in interface ReflectionUtil
packageName
- is the name of the Package
to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.filter
- is used to filter
the resources. The Filter
will receive fully
qualified classpath entries as argument (e.g. "net/sf/mmm/util/reflect/beans-util-reflect.xml"). Typically
you will exclude resources that end with ".class" or only accept resources that end with ".xml".classLoader
- is the explicit ClassLoader
to use.Set
with the fully qualified names of all requested resources (e.g.
"net/sf/mmm/util/reflect/beans-util-reflect.xml").public Set<DataResource> findResources(String packageName, boolean includeSubPackages, Filter<? super String> filter)
ReflectionUtil
packageName
. findResources
in interface ReflectionUtil
packageName
- is the name of the Package
to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.filter
- is used to filter
the resources. Typically you will exclude resources
that end with ".class" or only accept resources that end with ".xml".Set
with all requested resources
.public Set<DataResource> findResources(String absoluteClasspath) throws RuntimeIoException
ReflectionUtil
absoluteClasspath
. Unlike
ClasspathResource.ClasspathResource(String)
this method will return all
resources that with the given classpath (e.g. out of multiple JAR-files). findResources
in interface ReflectionUtil
absoluteClasspath
- is the absolute path to the resource. E.g.
"net/sf/mmm/util/resource/ClasspathResource.txt".Set
with all requested resources
.RuntimeIoException
- if the operation failed with an I/O error.public Set<DataResource> findResources(String packageName, boolean includeSubPackages, Filter<? super String> filter, ClassLoader classLoader)
ReflectionUtil
packageName
. findResources
in interface ReflectionUtil
packageName
- is the name of the Package
to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.filter
- is used to filter
the resources. Typically you will exclude resources
that end with ".class" or only accept resources that end with ".xml".classLoader
- is the explicit ClassLoader
to use.Set
with all requested resources
.public void visitResourceNames(String packageName, boolean includeSubPackages, ClassLoader classLoader, ResourceVisitor visitor) throws RuntimeIoException
packageName
- is the name of the Package
to scan. Both "." and "/" are accepted as separator (e.g.
"net.sf.mmm.util.reflect).includeSubPackages
- - if true
all sub-packages of the specified Package
will be included in
the search.classLoader
- is the explicit ClassLoader
to use.visitor
- is the ResourceVisitor
.RuntimeIoException
- if the operation failed with an I/O error.public Set<Class<?>> loadClasses(Collection<String> qualifiedClassNames)
ReflectionUtil
Collection
of fully qualified names
by
qualifiedClassNames
and returns them as Set
.loadClasses
in interface ReflectionUtil
qualifiedClassNames
- is a collection containing the qualified names
of the classes to
load.Set
with all loaded classes.public Set<Class<?>> loadClasses(Collection<String> qualifiedClassNames, Filter<? super Class<?>> filter)
ReflectionUtil
Collection
of fully qualified names
by
qualifiedClassNames
. It returns a Set
containing only those loaded classes that are
accepted
by the given filter
.loadClasses
in interface ReflectionUtil
qualifiedClassNames
- is a collection containing the qualified names
of the classes to
load.filter
- is used to filter the loaded classes.Set
with all loaded classes that are accepted
by the given
filter
.public Set<Class<?>> loadClasses(Collection<String> classNames, ClassResolver classResolver, Filter<? super Class<?>> filter)
ReflectionUtil
Collection
of names by classNames
using the given
classResolver
. It returns a Set
containing only those loaded classes that are
accepted
by the given filter
.loadClasses
in interface ReflectionUtil
classNames
- is a collection containing the names of the classes to load. The class names should typically be
the qualified names
of the classes to load. But this may differ depending on the
classResolver
.classResolver
- is used to load/resolve the classes by their names.filter
- is used to filter the loaded classes.Set
with all loaded classes that are accepted
by the given
filter
.protected ClassLoader getDefaultClassLoader()
ClassLoader
to use. This should be the ContextClassLoader
but falls back to alternatives if no such ClassLoader
is available.ClassLoader
to use.protected ClassLoader getDefaultClassLoader(Class<?> fallbackClass)
ClassLoader
to use. This should be the ContextClassLoader
but falls back to alternatives if no such ClassLoader
is available.fallbackClass
- is used to retrieve
a ClassLoader
as fallback if the
ContextClassLoader
is not available.ClassLoader
to use.Copyright © 2001–2016 mmm-Team. All rights reserved.