X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FReflection.java;h=de614d0628978e9e791c765f9659e1e7cedda838;hb=fef7d888b519acbf0a4ac9cb0a29feda77a494b3;hp=fea79e36a57b616300d6fd6966e9400ff8c80096;hpb=d79a5062fbe0211d0ad3459d6a545a5270f6efbd;p=sbp.git diff --git a/src/edu/berkeley/sbp/util/Reflection.java b/src/edu/berkeley/sbp/util/Reflection.java index fea79e3..de614d0 100644 --- a/src/edu/berkeley/sbp/util/Reflection.java +++ b/src/edu/berkeley/sbp/util/Reflection.java @@ -50,10 +50,18 @@ public final class Reflection { return (Object[])Array.newInstance(c, i); } + public static Object lub(Object argo) { + if (argo instanceof Object[]) return lub((Object[])argo); + return argo; + } public static Object[] lub(Object[] argo) { if (argo==null) return null; Class c = null; - for(Object o : argo) if (o != null) c = Reflection.lub(c, o.getClass()); + for(int i=0; iClass.forName that returns null instead of throwing an exception */ public static Class forNameOrNull(String s) { try { @@ -78,6 +92,7 @@ public final class Reflection { } } + public static Object fuzzyInvoke(Object o, Member m) { return fuzzyInvoke(o, m, new Object[0]); } /** invoke method/constructor m on object o with arguments args, and perform reasonable coercions as needed */ public static Object fuzzyInvoke(Object o, Member m, Object[] args) { try {