Package net.minidev.asm
Class BeansAccess<T>
- java.lang.Object
-
- net.minidev.asm.BeansAccess<T>
-
public abstract class BeansAccess<T> extends java.lang.Object
Allow access reflect field using runtime generated accessor. BeansAccessor is faster than java.lang.reflect.Method.invoke()
-
-
Constructor Summary
Constructors Constructor Description BeansAccess()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private static void
addAlias(BeansAccess<?> access, java.util.HashMap<java.lang.String,java.lang.String> m)
static <P> BeansAccess<P>
get(java.lang.Class<P> type)
return the BeansAccess corresponding to a typestatic <P> BeansAccess<P>
get(java.lang.Class<P> type, FieldFilter filter)
return the BeansAccess corresponding to a typeabstract java.lang.Object
get(T object, int methodIndex)
get field value by field indexjava.lang.Object
get(T object, java.lang.String methodName)
get field value by fieldnameAccessor[]
getAccessors()
int
getIndex(java.lang.String name)
Returns the index of the field accessor.java.util.HashMap<java.lang.String,Accessor>
getMap()
private static java.util.LinkedList<java.lang.Class<?>>
getParents(java.lang.Class<?> type)
abstract T
newInstance()
create a new targeted objectabstract void
set(T object, int methodIndex, java.lang.Object value)
set field value by field indexvoid
set(T object, java.lang.String methodName, java.lang.Object value)
set field value by fieldnameprotected void
setAccessor(Accessor[] accs)
-
-
-
Field Detail
-
map
private java.util.HashMap<java.lang.String,Accessor> map
-
accs
private Accessor[] accs
-
cache
private static java.util.concurrent.ConcurrentHashMap<java.lang.Class<?>,BeansAccess<?>> cache
cache used to store built BeansAccess
-
-
Method Detail
-
setAccessor
protected void setAccessor(Accessor[] accs)
-
getMap
public java.util.HashMap<java.lang.String,Accessor> getMap()
-
getAccessors
public Accessor[] getAccessors()
-
get
public static <P> BeansAccess<P> get(java.lang.Class<P> type)
return the BeansAccess corresponding to a type- Parameters:
type
- to be access- Returns:
- the BeansAccess
-
get
public static <P> BeansAccess<P> get(java.lang.Class<P> type, FieldFilter filter)
return the BeansAccess corresponding to a type- Parameters:
type
- to be access- Returns:
- the BeansAccess
-
getParents
private static java.util.LinkedList<java.lang.Class<?>> getParents(java.lang.Class<?> type)
-
addAlias
private static void addAlias(BeansAccess<?> access, java.util.HashMap<java.lang.String,java.lang.String> m)
-
set
public abstract void set(T object, int methodIndex, java.lang.Object value)
set field value by field index
-
get
public abstract java.lang.Object get(T object, int methodIndex)
get field value by field index
-
newInstance
public abstract T newInstance()
create a new targeted object
-
set
public void set(T object, java.lang.String methodName, java.lang.Object value)
set field value by fieldname
-
get
public java.lang.Object get(T object, java.lang.String methodName)
get field value by fieldname
-
getIndex
public int getIndex(java.lang.String name)
Returns the index of the field accessor.
-
-