关于JAVA里面的泛型的<?> ,<? extends Number>,<? super Number> 怎么用。如果自己写个类。怎么些
class Test<?>{}这样不行。还有个问题 就是我再书上看到。说可以实现组合的泛型,比如<T extends A super B> 这里的类型要是A的子类有要是B的父类。但是我class Test<T extends A super B>{}报错。还有就是servlet里面的HttpServletRequest 的一个getParameterMap()方法,返回的是个Map类型,我想问这里的Map里面放的是些什么数值? 我开始这样认为:假如<input type="text" name="username" value="admin">这样一个文本框,放在form里面,然后提交之后,那么用getParameterMap()得到的可能是name=value的关系,也就是说,是放的username=admin,但是我用System.out.println(map.get("username"))打出来的结果,不是admin,郁闷中;希望大家帮忙。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xgj1988】截止到2008-07-16 13:29:48的历史汇总数据(不包括此帖):
    发帖的总数量:53                       发帖的总分数:565                      每贴平均分数:10                       
    回帖的总数量:34                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:38                       结贴的总分数:180                      
    无满意结贴数:13                       无满意结贴分:230                      
    未结的帖子数:15                       未结的总分数:385                      
    结贴的百分比:71.70 %               结分的百分比:31.86 %                  
    无满意结贴率:34.21 %               无满意结分率:127.78%                  
    楼主加油
      

  2.   

    你的格式可能不对应该这样写class<这里写泛型> Test(){}
      

  3.   

    getParameterMap()就是提交参数的集合,名值对没错!楼主确定你的text元素真的被提交了么?另外限制泛型使用的情况还非常狭窄,楼主应该先学会用普通泛型
      

  4.   

    限制泛型确实很少用到
    至于getParameterMap 楼主使用的是正确的,如果用问题能把错误打出来吗?
      

  5.   

    我的doPost()的方法 public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {
    Map map=request.getParameterMap();
    System.out.println(map.get("name"));
    }
    表单 
    <form name="userForm" method="post" action="TestServlet" >
       <input type="text" name="name"  style="width:92px"/>
      <input name="Submit1" type="submit" id="Submit1" class="button" value="  登录  " />
    </form>然后再表单里输入admin,在控制台也应该打印admin啊,但是打出的是:[Ljava.lang.String;@2f0d54郁闷中。
      

  6.   

    你这输出的是对象,要用迭代输出,        Iterator it=mp.keySet().iterator();
                while(it.hasNext()){
                    String key=(String)it.next();
                    String value=(String)mp.get(key);
                    
                    System.out.println("key="+key+",value="+value);
           }
      

  7.   

    不好意思,上面代码有点错误,即map根据key得到的值可能是一数组,是为了防止参数名有相同的情况。正确的代码应如下:
     
        
       Map mp=request.getParameterMap();
       Set keSet=mp.entrySet();
       for(Iterator itr=keSet.iterator();itr.hasNext();)
       {
         Map.Entry me=(Map.Entry)itr.next();
         Object ok=me.getKey();
         Object ov=me.getValue();
         String[] value=new String[1];
        
         if(ov instanceof String[]){
          value=(String[])ov;
          }
         else{
          value[0]=ov.toString();
         }
      
         for(int k=0;k<value.length;k++)
         {
          System.out.println("key="+ok+",value["+k+"]="+value[k]);
        }
       }