- public String sify(Object arg) {
- if (arg==null) return "";
- if (arg instanceof String) return (String)arg;
- Object[] args = (Object[])arg;
- while(true) {
- args = Reflection.lub(args);
- if (args instanceof String[]) {
- StringBuffer ret = new StringBuffer();
- for(String s : ((String[])args)) ret.append(s);
- return ret.toString();
- }
- if (args instanceof Character[]) break;
- if (!(args instanceof Object[])) break;
- args = (Object[])args[0];
- }
- if (args instanceof Character[]) {
- char[] c = new char[args.length];
- for(int i=0; i<c.length; i++) c[i] = ((Character)args[i]).charValue();
- String s = new String(c, 0, c.length);
- return s;
- }
- return (String)args[0];
- }
-