是这个意思吗? public void showContent(Object obj) { if(obj instanceof List) { for(Object o : (List<Object>)obj) { System.out.println(o); } } }
public static void main(String[] args) { List<Object> list = new ArrayList<Object>(); list.add(1); list.add(2); FanSheTest test = new FanSheTest(); test.showContent(list); list = new ArrayList<Object>(); list.add("hello"); list.add("world"); test.showContent(list); }
那我觉得你似乎需要定义一个上下文类.在反序列化的时候传入进去. //我这里只是举例.真正需要传入的东西可能不止这些 class serializeContext { public String type ;//序列化或反序列化的类型 public ISerialize serialize;//你定义的序列化工具 public String target;//序列化的目的地.可以是磁盘,数据库,内存等等. }
楼主【angel_z_yu】截止到2008-07-10 16:14:49的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:20 每贴平均分数:20
回帖的总数量:9 得分贴总数量:3 回帖的得分率:33%
结贴的总数量:1 结贴的总分数:20
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
JAVA核心技术第一卷了 最后那几十页讲过这个问题
List<String> list = ArrayList<String>();
list.add("xxxxx");
list.add...
...
Object o = list.get(0);
System.out.println(o.getClass());
但是如果是局部变量,List<String> list = ...这个是无法获取的,因为它只是编译时用到,生成的Class文件中并没有<String>信息的
if(a instanceof String){
//判断a是否是String 类型
}
那没戏,你用不用泛型 JVM 都是当 Object 往 List 里装的,只能 List 里的元素一个一个的 getClass() 来判断。
引用都是按 Object 装的,跟引用对象的实际类型无关,不影响序列化。
if(obj instanceof List) {
for(Object o : (List<Object>)obj) {
System.out.println(o);
}
}
}
public static void main(String[] args) {
List<Object> list = new ArrayList<Object>();
list.add(1);
list.add(2);
FanSheTest test = new FanSheTest();
test.showContent(list);
list = new ArrayList<Object>();
list.add("hello");
list.add("world");
test.showContent(list);
}
//我这里只是举例.真正需要传入的东西可能不止这些
class serializeContext {
public String type ;//序列化或反序列化的类型 public ISerialize serialize;//你定义的序列化工具 public String target;//序列化的目的地.可以是磁盘,数据库,内存等等.
}