回 帖 发 新 帖 刷新版面

主题:hashmap的问题

高手们快点帮我个忙!我最近练习HashMap<e,p>这个泛型类。声明了一个hashmap m,为什么在用m.put(String s,p)"其中p是一个对象"。编译时会出现“编译时使用了未经检察的******,请使用-XLink进行编译******”(本人记得不是很清楚了!),我先还以为是我使用ObjectoutputStream的错,但是后面我调试好像问题就出在m.put()这个方法这里!
前面好像是这样的:HashMap m=(HashMap)out.readObject();//这里是读入操作
           ............
           ............
           FileOutputSteam out=new FileOutputStream(file);
           ObjectOutputStream outt=new ObjectOutStream(out);
           m.put(String,p);//只要一加这句就有错了!
           outt.writeObject(m);
           .......................
    请高手们看看!我以前还从来没有遇到上面提示的那种错误,可能是我使用HashMap有错嘛!

回复列表 (共5个回复)

沙发

楼上的我不知道你想干什么,但是请你用方法的时候先查阅相关的PAI在做
具体里面有什么参数一定要搞清楚。。我不知道你那个p到底是以个什么对象。请先把参数类型搞清楚
希望对你有帮助



public V put(K key,
             V value)在此映射中关联指定值与指定键。如果此映射以前包含了一个该键的映射关系,则旧值被替换。 

指定者:
接口 Map<K,V> 中的 put
覆盖:
类 AbstractMap<K,V> 中的 put
参数:
key - 指定值将要关联的键。
value - 指定键将要关联的值。 
返回:
与指定键相关联的旧值,如果键没有任何映射关系,则返回 null。返回 null 还可能表示该 HashMap 以前将 null 与指定键关联。

板凳

m.put(String,p);//只要一加这句就有错了!
把你那个参数p改为一个hasMap的参数类型试试

3 楼

高手们我是想做一个电话本系统哈,用把姓名,电话都封到一个Person类中,就是上面说的p,然后String s就是Key值。用Objectread()从硬盘上读出来存到HashMap<String s, Person p>中,所以就要用到我上面的 m.put(s,p)(其中S就是Key值)。但是不知怎么回事一加这句就有错!

4 楼

你好我想你还是没有弄明白我的意思。。。。
你还是应该把那个方法查阅一下相关资料。。。。。
我不知道你的报错提示是什么。。。。
你自所以报错的原因。。。我想可能是你封装的时候出了问题。。。要么就是后面的那个参数没有读取到相关联的那个值。。。。。
我帮你查阅了帮助文档。。。后面跟的参数是一个hasMap中的类型参数

5 楼

恩好的,我再去看看哈,谢了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册