从文件中读出一个Object,怎样知道这个Object具体是什么类型(有代码),只能用Instanceof吗?

ErikChen1985 2006-09-01 10:57:15
从下面函数读出一个Object
public static Object readAnObjectFormAFile(String filepath)
{
File file = new File(filepath);
Object obj = null;
if (file.exists() == false)
return null;
try
{
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
obj = ois.readObject();
ois.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
return null;
}
catch (IOException e)
{
e.printStackTrace();
return null;
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
return null;
}
return obj;
}

请问怎样才可以知道这个Object具体是什么类型.

是不是要用if(obj instanceof String)这类的方法来得到?

如果读出的是Set,Map这类的,怎样知道Set和Map的key和Value是什么类型?
...全文
407 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zh__ua 2006-09-05
  • 打赏
  • 举报
回复
是这样,运行要取实际类型只能用getClass().getName
ErikChen1985 2006-09-05
  • 打赏
  • 举报
回复
Hashtable<>,这个尖括号在运行期间没有任何用,它只在编译期间检查而已。--------

-----------------------------------------------------------------------------
是这样吗?
ErikChen1985 2006-09-03
  • 打赏
  • 举报
回复
Hashtable<>,这个尖括号在运行期间没有任何用,它只在编译期间检查而已。--------

-----------------------------------------------------------------------------
是这样吗?
bigc2000 2006-09-02
  • 打赏
  • 举报
回复
Hashtable<>,这个尖括号在运行期间没有任何用,它只在编译期间检查而已。--------我不记得是不是这样。
obj.getClass()就是对的。
treeroot 2006-09-02
  • 打赏
  • 举报
回复
晕,知道就知道,不知道也不需要知道
ErikChen1985 2006-09-01
  • 打赏
  • 举报
回复
如果是泛型的,要怎样返回Hashtable<>中<>的内容?
maquan 2006-09-01
  • 打赏
  • 举报
回复
obj.getClass().getName()
ErikChen1985 2006-09-01
  • 打赏
  • 举报
回复
你可以先用instanceof来比较是哪一个类的实例
然后可以通过反射机制来知道更为详细的内容

----------------------------------------------------------
如果我不知道是哪个类的实例,那我是不是要试过java中的所有类?
千里冰封820 2006-09-01
  • 打赏
  • 举报
回复
你可以先用instanceof来比较是哪一个类的实例
然后可以通过反射机制来知道更为详细的内容
ErikChen1985 2006-09-01
  • 打赏
  • 举报
回复
如果是泛型的,要怎样返回Hashtable<>中<>的内容?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧