求助:急! 关于“使用了未经检查或不安全的操作”
// 我的程序 UserList.javaimport java.util.*;
public class UserList {
private Hashtable list=new Hashtable();
private Hashtable active=new Hashtable();
UserList(){
}
protected synchronized boolean add(String user){
if(exists(user))
return false;;
list.put(user, new MessageQueue());
touch(user);
return true;
}
protected synchronized void touch(String user){
if(exists(user))
active.put(user, new Long(System.currentTimeMillis()));
}
protected synchronized Enumeration list(){
return list.keys();
}
protected synchronized boolean drop(String user){
if(!exists(user))
return false;
list.remove(user);
active.remove(user);
return true;
}
protected boolean exists(String user){
return list.containsKey(user);
}
protected void addMessage(Message message){
Enumeration allUsers=list.keys();
while(allUsers.hasMoreElements())
addUserMessage((String)allUsers.nextElement(),message);
}
protected void addUserMessage(String user,Message message){
((MessageQueue)list.get(user)).add(message);
}
protected void resetUser(String user){
((MessageQueue)list.get(user)).reset();
}
protected Enumeration getMessage(String user){
touch(user);
return ((MessageQueue)list.get(user)).listMessages();
}
protected synchronized Enumeration inactive(int timeout){
Vector inactive=new Vector();
long now=System.currentTimeMillis();
long when=now-timeout;
Enumeration users=list.keys();
while(users.hasMoreElements()){
String user=(String) users.nextElement();
if(((Long)active.get(user)).longValue()<when){
inactive.addElement(user);
}
}
return inactive.elements();
}
}
编译时:UserList.java :使用了未经检查或不安全的操作;请使用 -Xlint:unchecked 重新编译
搜索更多相关的解决方案:
检查
----------------解决方案--------------------------------------------------------
请那位高手能帮我看看,谢谢了
----------------解决方案--------------------------------------------------------
用泛型就没事了
----------------解决方案--------------------------------------------------------
比如
Hashtable<String,Message> sss=new Hashtable<String,Message>();
这样sss里面只能放入String为KEY,Message为VALUE的东西了
然后取出来的时候,也不需要转型了
Message m=sss.get("mm");
这样就可以了,而不需要加个括号转型,这是JDK1.5的新功能,更安全
----------------解决方案--------------------------------------------------------
我把程序改成
private Hashtable<String,MessageQueue> list=new Hashtable<String,MessageQueue> ();
private Hashtable<String,Long> active=new Hashtable<String,Long> ();
还是不行
----------------解决方案--------------------------------------------------------
很多地方都要改
包括Enumeration,Vector
----------------解决方案--------------------------------------------------------
恩 我在试试
谢谢 ~
----------------解决方案--------------------------------------------------------
问题解决了
呵呵 谢谢
我还有一个问题想请教
----------------解决方案--------------------------------------------------------
我编的这个程序 Applet 是嵌入到HTML页面中的
但我运行的时候 页面所有的控件都没显示
为什么呢
----------------解决方案--------------------------------------------------------
APPLET代码
----------------解决方案--------------------------------------------------------