package tutorial;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{

private String username;
private String password;

public String getUsername(){
return username;
}

public void setUsername(String username){
this.username = username;
}

public String getPassword(){
return password;
}

public void setPassword(String password){
this.password = password;
}

public String execute() throws Exception{
if( getUsername().equals("admin") && getPassword().equals("admin")){
ActionContext.getContext().getSession().put("user", getUsername());
return SUCCESS;
}else{
return ERROR;
}
}
}
这个JAVA直接在DOS下编译的时候,就警告:
对作为普通类型 java.util.Map的成员的put<K,V>的调用未经检查. 
ActionContext.getContext().getSession().put("user", getUsername());
                                           ^

[size=14px]应该如何去修改啊?[size]

解决方案 »

  1.   

    jdk1.4到jdk1.5迁移的标准警告,没关系的,可以执行的。 
      

  2.   

    Map<LoginAction > map =new Map<LoginAction >();
      

  3.   

    你告诉 编译器 Map里只装什么(我是让他装了LoginAction,主要是LoginAction对象就ok,具体装什么随你)
     这样编译器就会得到良好的检查。省去许多麻烦 :)
      

  4.   

    直接在Eclipse里面就可以编译,但在dos下用javac编译就不行。谢谢nanjg,我大概知道是JDK5以后的一个泛型的问题,但具体应该怎么去修改,真的不知道。
    Map<X, X> map = new Map<X, X>(); //泛型大概是这种形式;具体这段代码应该如何修改? ActionContext.getContext().getSession().put("user", getUsername());Map<String, String> map = new Map<String, String>();
    map = ActionContext.getContext().getSession();
    map.put("user", getUsername());  //是不是这样改?大家指点一下. 
      

  5.   

    Map <User,   String>   map   =   new   Map <User,   String> (); 
    User 是类 ,我指。而且我理解 user 是User类的对象 
      

  6.   

    ActionContext.getContext().getSession().put()要求的是两个Object所以你的写法完全没有问题,问题出在你在dos下编译
    首先你为什么在dos编译呢,做将j2ee开发需要很多jar包,你可以用ant啊,Eclipse也可以啊!另外确定你当前的cmd环境使用的是5.0以上jdk,并且classpath等没有问题
    最后你的代码是没问题的,别乱改错了
      

  7.   

    Map <String,   String>   map   =   new   Map <String,   String> ();
      

  8.   

    Map <String,   String>   map   =   new   HashMap <String,   String> ();
      

  9.   

    希望楼上的仔细看下ActionContext.getContext().getSession().put()要求的是Object
    他写的没错,要是改错了就不值了,eclipse不报错就说明编译通过了,可能楼主的cmd环境有问题引的包什么的和eclipse配置不一样