怎样判别一个对象的类型 getClass().getName()或者可以判断if(obj instanceOf java.XXX.XXX)第一个是得到类名第二个可以判断对象是不是某一个类的对象 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假设我已经用getClass().getName()得到了类名那我要是想把他转换成这个类型,应该怎样做呢? Public void a(Hashtable ht){ Object o=ht.get(“1”);………………}请问在省略号 那里我想将对象o转换到原来的类型,却不知道原来的类型是什么,这样应该怎样转换? 直接强制转化啊,假如得到的类名为:A则可以 A a=(A)o; 判断是什么类型用运算符 instanceOf,如果不知道原来是什么类型,可以通过getClass().getName()获得,但如果想强制转换,就没有什么办法了,如果用JDK1.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); }} 生成XML问题。求解!很急! 推荐本p2p的书籍 求CFS加密算法的java代码(附C的代码) 关于Exception的问题 有技术含量的JTable扩展问题 如何在jTable中设置单元格焦点并选中单元格中的内容 求助一个简单的java程序! 超级简单问题 java转cpp 被捆绑的Java iReport可以支持SQL Procedures么? IReport中如何创建sum字段?其它avg等又如何实现?
{
Object o=ht.get(“1”);
………………
}请问在省略号 那里我想将对象o转换到原来的类型,却不知道原来的类型是什么,这样应该怎样转换?
则可以 A a=(A)o;
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);
}
}