Object[] ret = (Object[])Array.newInstance(c.getComponentType(), 1);
ret[0] = o;
return ret;
+ } else if (c==int.class && o instanceof Number) { return o;
} else {
throw new Error("unable to cast " + o + " from " + o.getClass().getName() + " to " + c.getName());
}
return (Object[])Array.newInstance(c, i);
}
+ public static String indent(String s, int indent) {
+ if (s.indexOf('\n')==-1) return s;
+ StringBuffer ret = new StringBuffer();
+ for(int i=0; i<s.length(); i++) {
+ char c = s.charAt(i);
+ ret.append(c);
+ if (c=='\n')
+ for(int j=0; j<indent; j++)
+ ret.append(' ');
+ }
+ return ret.toString();
+ }
+
+ public static String show(Object o) {
+ if (o==null) return "null";
+ if (! (o instanceof Object[])) return o.toString() + " : " + o.getClass().getName();
+ Object[] arr = (Object[])o;
+ StringBuffer ret = new StringBuffer();
+ ret.append(o.getClass().getComponentType().getName());
+ ret.append("[]:\n");
+ for(int i=0; i<arr.length; i++)
+ ret.append(indent(show(arr[i]), 4) + "\n");
+ return ret.toString();
+ }
+
public static Object lub(Object argo) {
if (argo instanceof Object[]) return lub((Object[])argo);
return argo;
if ((c.getModifiers() & Modifier.INTERFACE) != 0) return false;
return true;
}
+ public static boolean isStatic(Field f) {
+ if ((f.getModifiers() & Modifier.STATIC) != 0) return true;
+ return false;
+ }
+
+ public static Field getField(Class c, String s) {
+ try {
+ for(Field f : c.getDeclaredFields())
+ if (f.getName().equals(s))
+ return f;
+ } catch (Exception e) { }
+ if (c.getSuperclass()==null || c.getSuperclass()==c) return null;
+ return getField(c.getSuperclass(), s);
+ }
+ public static Field getField(Class c, int i) {
+ try {
+ for(Field f : c.getDeclaredFields()) {
+ if (isStatic(f)) continue;
+ return f;
+ }
+ if (c.getSuperclass()==null || c.getSuperclass()==c) return null;
+ return getField(c.getSuperclass(), i);
+ } catch (Exception e) { }
+ return null;
+ }
}