Fix reflection method invokation

Either of Method.invoke, Field.get and Field.set can accept null as
receiver.

Change-Id: I4539dcc95a794f6ee84cf4e7aabf4e8f0206728f
This commit is contained in:
Tadashi G. Takaoka 2011-05-24 11:15:18 +09:00
parent 05c9b0182b
commit f23f00a13a

View file

@ -108,7 +108,7 @@ public class CompatUtils {
public static Object invoke( public static Object invoke(
Object receiver, Object defaultValue, Method method, Object... args) { Object receiver, Object defaultValue, Method method, Object... args) {
if (receiver == null || method == null) return defaultValue; if (method == null) return defaultValue;
try { try {
return method.invoke(receiver, args); return method.invoke(receiver, args);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
@ -124,7 +124,7 @@ public class CompatUtils {
} }
public static Object getFieldValue(Object receiver, Object defaultValue, Field field) { public static Object getFieldValue(Object receiver, Object defaultValue, Field field) {
if (receiver == null || field == null) return defaultValue; if (field == null) return defaultValue;
try { try {
return field.get(receiver); return field.get(receiver);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
@ -137,7 +137,7 @@ public class CompatUtils {
} }
public static void setFieldValue(Object receiver, Field field, Object value) { public static void setFieldValue(Object receiver, Field field, Object value) {
if (receiver == null || field == null) return; if (field == null) return;
try { try {
field.set(receiver, value); field.set(receiver, value);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {