umontreal.iro.lecuyer.util
Class Introspection
- java.lang.Object
-
- umontreal.iro.lecuyer.util.Introspection
-
public class Introspection extends java.lang.ObjectProvides utility methods for introspection using Java Reflection API.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static java.lang.reflect.FieldgetField(java.lang.Class<?> c, java.lang.String name)This is likegetField, except that it can return non-public fields.static java.lang.StringgetFieldName(java.lang.Object val)Returns the field name corresponding to the value of an enumerated type val.static java.lang.reflect.Field[]getFields(java.lang.Class<?> c)Returns all the fields declared and inherited by a class.static java.lang.reflect.MethodgetMethod(java.lang.Class<?> c, java.lang.String name, java.lang.Class[] pt)This is likegetMethod, except that it can return non-public methods.static java.lang.reflect.Method[]getMethods(java.lang.Class<?> c)Returns all the methods declared and inherited by a class.static booleansameSignature(java.lang.reflect.Method m1, java.lang.reflect.Method m2)Determines if two methods m1 and m2 share the same signature.static <T> TvalueOf(java.lang.Class<T> cls, java.lang.String name)Returns the field of class cls corresponding to the name name.static <T> TvalueOfIgnoreCase(java.lang.Class<T> cls, java.lang.String name)Similar tovalueOf(cls, name), with case insensitive field name look-up.
-
-
-
Method Detail
-
getMethods
public static java.lang.reflect.Method[] getMethods(java.lang.Class<?> c)
Returns all the methods declared and inherited by a class. This is similar togetMethodsexcept that it enumerates non-public methods as well as public ones. This method usesgetDeclaredMethodsto get the declared methods of c. It also gets the declared methods of superclasses. If a method is defined in a superclass and overriden in a subclass, only the overriden method will be in the returned array.Note that since this method uses
getDeclaredMethods, it can throw aSecurityExceptionif a security manager is present.- Parameters:
c- the class being processed.- Returns:
- the array of methods.
-
sameSignature
public static boolean sameSignature(java.lang.reflect.Method m1, java.lang.reflect.Method m2)Determines if two methods m1 and m2 share the same signature. For the signature to be identical, methods must have the same number of parameters and the same parameter types.- Parameters:
m1- the first method.m2- the second method.- Returns:
- true if the signatures are the same, false otherwise.
-
getFields
public static java.lang.reflect.Field[] getFields(java.lang.Class<?> c)
Returns all the fields declared and inherited by a class. This is similar togetFieldsexcept that it enumerates non-public fields as well as public ones. This method usesgetDeclaredFieldsto get the declared fields of c. It also gets the declared fields of superclasses and implemented interfaces.Note that since this method uses
getDeclaredFields, it can throw aSecurityExceptionif a security manager is present.- Parameters:
c- the class being processed.- Returns:
- the array of fields.
-
getMethod
public static java.lang.reflect.Method getMethod(java.lang.Class<?> c, java.lang.String name, java.lang.Class[] pt) throws java.lang.NoSuchMethodExceptionThis is likegetMethod, except that it can return non-public methods.- Parameters:
c- the class being processed.name- the name of the method.pt- the parameter types.- Throws:
java.lang.NoSuchMethodException- if the method cannot be found.
-
getField
public static java.lang.reflect.Field getField(java.lang.Class<?> c, java.lang.String name) throws java.lang.NoSuchFieldExceptionThis is likegetField, except that it can return non-public fields.Note that since this method uses
getDeclaredField, it can throw aSecurityExceptionif a security manager is present.- Parameters:
c- the class being processed.name- the name of the method.- Throws:
java.lang.NoSuchFieldException- if the field cannot be found.
-
getFieldName
public static java.lang.String getFieldName(java.lang.Object val)
Returns the field name corresponding to the value of an enumerated type val. This method gets the class of val and scans its fields to find a public static and final field containing val. If such a field is found, its name is returned. Otherwise, null is returned.- Parameters:
val- the value of the enumerated type.- Returns:
- the field name or null.
-
valueOf
public static <T> T valueOf(java.lang.Class<T> cls, java.lang.String name)Returns the field of class cls corresponding to the name name. This method looks for a public, static, and final field with name name and returns its value. If no appropriate field can be found, anIllegalArgumentExceptionis thrown.- Parameters:
cls- the class to look for a field in.name- the name of field.- Returns:
- the object in the field.
- Throws:
java.lang.IllegalArgumentException- if name does not correspond to a valid field name.
-
valueOfIgnoreCase
public static <T> T valueOfIgnoreCase(java.lang.Class<T> cls, java.lang.String name)Similar tovalueOf(cls, name), with case insensitive field name look-up. If cls defines several fields with the same case insensitive name name, anIllegalArgumentExceptionis thrown.- Parameters:
cls- the class to look for a field in.name- the name of field.- Returns:
- the object in the field.
- Throws:
java.lang.IllegalArgumentException- if name does not correspond to a valid field name, or if the class defines several fields with the same name.
-
-
DMelt 3.0 © DataMelt by jWork.ORG