|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.ranides.assira.reflection.UnsafeArrayAccess
public abstract class UnsafeArrayAccess
Klasa udostępniająca bezpośredni dostęp do tablic dowolnego typu znaczniej wydajniej i JIT-friendly, niż reflection API. Samodzielnie zarządza autoboxingiem typów primitive.
Klasa umożliwia 'transparentne' rzutowanie typów prostych, np pozwala
traktować tablicę long[] jako tablicę byte[]. Konwersja jest
wykonywana natywnie przez system hostujący (a nie przez VM!). Przekłada się
to przede wszystkim na względnie większą wydajność kosztem
nieprzenośności kodu ze względu na endianess.
Klasa nie może być tworzona bezpośrednio, należy użyć jednej z metod #getInstance
ArrayUtils.wrap(Object),
ArrayUtils.wrap(Class, Object)| Method Summary | |
|---|---|
static Class<?> |
asArrayType(Class<?> type)
|
static Class<?> |
asArrayType(Class<?> type,
int dimensions)
|
static Class<?> |
asComponentType(Class<?> type)
|
Object |
change(Object object,
int index,
Object value)
|
abstract Object |
create(int size)
|
static UnsafeArrayAccess |
forObject(Object array)
|
static UnsafeArrayAccess |
forType(Class<?> type)
|
static UnsafeArrayAccess |
forType(Class<?> target,
Class<?> source)
Tworzy obiekt UnsafeArrayAccess odczytujący danez tablicy o klasie
sourceType i prezentujący jako tablicę typu targetType. |
abstract Object |
get(Object object,
int index)
|
abstract int |
length(Object array)
|
abstract void |
put(Object object,
int index,
Object value)
|
abstract void |
putNull(Object array,
int index)
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static UnsafeArrayAccess forObject(Object array)
public static UnsafeArrayAccess forType(Class<?> type)
public static UnsafeArrayAccess forType(Class<?> target,
Class<?> source)
UnsafeArrayAccess odczytujący danez tablicy o klasie
sourceType i prezentujący jako tablicę typu targetType.
Uwaga! Argumenty mają definiować klasę tablicy, a nie jej komponentu
target - typ, na który tablica będzie rzutowanasource - realny typ tablicy przechowującej dane
public static Class<?> asComponentType(Class<?> type)
public static Class<?> asArrayType(Class<?> type)
public static Class<?> asArrayType(Class<?> type,
int dimensions)
public abstract Object get(Object object,
int index)
public abstract void put(Object object,
int index,
Object value)
public abstract void putNull(Object array,
int index)
public abstract Object create(int size)
public abstract int length(Object array)
public Object change(Object object,
int index,
Object value)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||