getClass().getName()或者可以判断
if(obj instanceOf java.XXX.XXX)第一个是得到类名
第二个可以判断对象是不是某一个类的对象

解决方案 »

  1.   

    假设我已经用getClass().getName()得到了类名那我要是想把他转换成这个类型,应该怎样做呢?
      

  2.   

    Public void a(Hashtable ht)
    {
     Object o=ht.get(“1”);
    ………………
    }请问在省略号 那里我想将对象o转换到原来的类型,却不知道原来的类型是什么,这样应该怎样转换?
      

  3.   

    直接强制转化啊,假如得到的类名为:A
    则可以 A a=(A)o;
      

  4.   

    判断是什么类型用运算符   instanceOf,如果不知道原来是什么类型,可以通过getClass().getName()获得,但如果想强制转换,就没有什么办法了,如果用JDK1.5,里面有范型,好像可以解决这个问题。
      

  5.   

    一般有两种方法,一种是反射,一种是直接书写,后者一般用的比较多,看如下例子:public class Temp_csdn {
    private static String myString1 = new String("aaaaa");//这里的字符串代表你从某处读来的对象,当然这里最好是接口,这里只是举例就用String代替
    private Object myObject;//这里我并不知道Object是哪个类的实例
    private Class myClass;//这里我也不知道它代表哪个类
    public Temp_csdn(Object object){
    myObject = object;
    /*此方法用于获取myObject所对应的类名*/
    System.out.println(myObject.getClass().getName());
    /*此方法用于获取实例化该类*/
    try{
    myClass = Class.forName(myObject.getClass().getName());
    /*一下这句话是用构建器方法实例化该类,当然一般情况下没必要这样
     * 可以直接写成String t = (String)myObject;
     * 实例中的写法不再保有原来的数据"aaaaa",而注释中的写法可以保留原来的数据aaaaaa
     * */
    String t = (String)myClass.getConstructors()[9].newInstance(new Object[]{new String("ttttttt")});
    System.out.println("t = " + t);
    }
    catch(Exception e){
    System.out.println(e.toString());
    }
    }

    public static void main(String[] src){
    new Temp_csdn(myString1);
    }
    }