public void ss(Object o){
}
怎么样把传入ss方法中的 Object o对象 还原成原来的对象? 可以调用o对象原来class中的方法?
在不知道 o 原来型别是什么的情况下?谢了

解决方案 »

  1.   


            String s = new String();
            Object o = (Object) s;
            if (o instanceof String) {
                System.out.println("String");
            }
    用instanceof有些许作用。
      

  2.   

    被一楼的哥么提醒了。
    System.out.println(o.getClass().getName());
      

  3.   

    package test;import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;public class Client {    public static void main(String args[]) throws SecurityException, NoSuchFieldException, IllegalArgumentException,
            IllegalAccessException, InvocationTargetException {
            ss(new A());
        }    static public void ss(Object o) {
            Class c = o.getClass();
            Field[] fs = c.getDeclaredFields();
            Method[] m = c.getDeclaredMethods();
            try {
                for (Field f : fs)
                    System.out.println(f.getName() + ":" + f.get(o));            for (Method m1 : m) {
                    System.out.println(m1.getName());
                    m1.invoke(o);
                }
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
        }
    }class A {    public String name = "zhao";    public void test() {
            System.out.println("test() method");
        }
    }