|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.ranides.assira.reflection.ObjectInspector
public final class ObjectInspector
| Method Summary | ||
|---|---|---|
static
|
createInstance(Class<T> clazz)
Tworzy obiekt podanej klasy wywołując domyślny konstruktor. |
|
static
|
createInstance(Class<T> clazz,
Object... arguments)
Tworzy obiekt podanej klasy wywołując najlepiej pasujący konstruktor. |
|
static
|
createInstance(Constructor<T> ctor,
Object... arguments)
Tworzy nowy obiekt wywołując podany konstruktor z podanymi argumentami. |
|
static Object |
createInstance(String className,
Object... arguments)
Tworzy obiekt klasy o podanej nazwie wywołując najlepiej pasujący konstruktor. |
|
static Method |
findMethod(Object object,
String name)
Zwraca publiczną metodę o podanej nazwie bez względu na pobierane argumenty. |
|
static Object |
getField(Class<?> clazz,
Object object,
String name)
Wyszukuje i odczytuje wartość klasycznego pola w obiekcie (najczęściej będzie to prywatna zmienna wewnętrzna). |
|
static Object |
getField(Object object,
String name)
Wyszukuje i odczytuje wartość klasycznego pola w obiekcie (najczęściej będzie to prywatna zmienna wewnętrzna). |
|
static Method |
getMethod(Object object,
String name,
Class<?>... params)
Sprawdza, czy obiekt posiada publiczną metodę o dokładnie pasujących typach argumentów |
|
static Method |
getMethod(Object object,
String name,
int count)
Zwraca publiczną metodę o podanej nazwie, pobierającą określoną ilość argumentów. |
|
static boolean |
hasMethod(Object object,
String name,
Class<?>... params)
Sprawdza, czy obiekt posiada publiczną metodę o dokładnie pasujących typach argumentów |
|
static boolean |
hasMethod(Object object,
String name,
int count)
Sprawdza, czy obiekt posiada publiczną metodę odpowiedniej ilości argumentów |
|
static Method |
matchMethod(Object object,
String name,
Object... values)
Zwraca metodę o najlepiej pasujących typach argumentów. |
|
static void |
setField(Class<?> clazz,
Object object,
String name,
Object value)
Wyszukuje i przypisuje wartość klasycznemu polu w obiekcie (najczęściej będzie to prywatna zmienna wewnętrzna). |
|
static void |
setField(Object object,
String name,
Object value)
Wyszukuje i przypisuje wartość klasycznemu polu w obiekcie (najczęściej będzie to prywatna zmienna wewnętrzna). |
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static Method getMethod(Object object,
String name,
Class<?>... params)
throws InspectException
object - name - params - typy argumentów zadeklarowane identycznie jak w metodzie
InspectException
public static Method getMethod(Object object,
String name,
int count)
object - name - count -
public static Method findMethod(Object object,
String name)
object - name -
public static boolean hasMethod(Object object,
String name,
Class<?>... params)
object - name - params - typy argumentów zadeklarowane identycznie jak w metodzie
public static boolean hasMethod(Object object,
String name,
int count)
object - name - count -
public static <T> T createInstance(Constructor<T> ctor,
Object... arguments)
throws InspectException
T - ctor - arguments -
InspectException
public static <T> T createInstance(Class<T> clazz,
Object... arguments)
throws InspectException
T - clazz - arguments -
InspectExceptionmatchMethod(java.lang.Object, java.lang.String, java.lang.Object...)
public static <T> T createInstance(Class<T> clazz)
throws InspectException
T - clazz -
InspectException
public static Object createInstance(String className,
Object... arguments)
throws InspectException
className - arguments -
InspectException
public static void setField(Object object,
String name,
Object value)
throws InspectException
object - name - value -
InspectException
public static void setField(Class<?> clazz,
Object object,
String name,
Object value)
throws InspectException
clazz - klasa, w której zadeklarowano poleobject - obiektname - value -
InspectException
public static Object getField(Object object,
String name)
throws InspectException
object - name -
InspectException
public static Object getField(Class<?> clazz,
Object object,
String name)
throws InspectException
clazz - klasa, w której zadeklarowano poleobject - obiektname -
InspectException
public static Method matchMethod(Object object,
String name,
Object... values)
throws InspectException
Ponieważ na argumentcie values wymuszany jest autoboxing, niektóre
wywołania sa niejednoznaczne. W szczególności deklaracje rodzaju:
class A{
void method(int a);
void method(Integer a);
}
matchMethod(A.class, "method", 1);
matchMethod(A.class, "method", Integer.valueOf(2) );
W pierwszej instrukcji programista powinien oczekiwać wersji int,
w drugiej: Integer. Niestety, funkcja matchMethod dostaje
w obu przypadkach wartość już z'autoboxowaną: Integer - więc nie
jest w stanie tych wywołań odróżniać. W obu liniach zostanie wyrzucony wyjątek
- aby uruchomić kod, programista powinien usunąć jedną z metod.
object - name - values -
InspectException - jeśli nie znaleziono pasującej metody lub wystąpiła
niejednoznaczność
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||