一个可能与JAVA反射有关的问题....

[size=x-large][color=red]问题是这样子的,
Object obj = someMethod();
通过上面这个我得到obj对象;
通过obj.getClass().getName();我可以知道这个对象的类型;
我现在是想通过obj,将我的obj转化为它真实类型的对象...[/color][/size]

呵呵,不太可能。就向上面我用伪代码说明的那样,得到了也是无法获得的!

检测:

if(obj instanceof Date){
Date abcd = (Date) obj;
}elseif(obj instanceof HashMap){
Map abcd = (Map) obj;
}

abcd是什么类?有什么方法?调用什么方法?? 还是不知道。。。。

用接口约束 Object[]中的类型。。

[color=blue][b]
JVM会在运行时,进行类型的动态绑定。因此,obj的实际类型JVM知道。通过输出obj的toString就可以验证![/b][/color]

[b]假设,只是假设[/b]

[code="java"]// 假设 这样转型,可以成功
(obj.getClass().getName()) abcd = (obj.getClass().getName()) obj;
// 下一步呢?
// 你的程序还是不知道abcd的详细类型。。。
// 还是无法调用特定的方法。
[/code]
[b]
不知道你想要如何应用?

PS : 一般都是用interface来做约束的,即 得到的obj是某个Interface的实现类。然后你的程序就知道obj的某些特定的方法、信息了。
[/b]