X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FReflection.java;h=a1c1dde8a0a759707504a24d256af9a85e16d6f1;hp=42267ceee833b3597e0372524bc75307fb48e2aa;hb=e014c992f89fea2185be2d249d894e588524daad;hpb=1ee308307a30c7e610a7dcad2e2cc4253e9ae039 diff --git a/src/edu/berkeley/sbp/util/Reflection.java b/src/edu/berkeley/sbp/util/Reflection.java index 42267ce..a1c1dde 100644 --- a/src/edu/berkeley/sbp/util/Reflection.java +++ b/src/edu/berkeley/sbp/util/Reflection.java @@ -1,7 +1,11 @@ +// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license + package edu.berkeley.sbp.util; import java.io.*; import java.lang.reflect.*; +import java.lang.annotation.*; +// FIXME: decent error reporting /** Random reflection-related utilities */ public final class Reflection { @@ -51,6 +55,33 @@ public final class Reflection { return (Object[])Array.newInstance(c, i); } + public static String show(Object o) { + if (o==null) return "null"; + if (o instanceof Show) return show((Show)o); + 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("["+arr.length+"]:"); + for(int i=0; i