import java.sql.*;
import java.util.*;
import future.GetInfoFromDB;
public class search {
public Map getEnameCard(String s)throws SQLException{
GetInfoFromDB gi=new GetInfoFromDB();
List l=null;
if(l!=null){
l.clear();
}
l=gi.getList("select*from enamecard where user=\""+s+"\"");
Map m=(Map)l.get(0);
return m;
}
public static void main(String[] args)throws SQLException{
search se=new search();
Map m=se.getManager("用户2");
Map m1=se.getManager("用户4");
System.out.print(m.get("user"));
System.out.print(m1.get("user"));
}
本来结果应该显示用户2 用户4,可是运行后都是显示用户2,我加了个clear()方法也没用
}
參考答案:首先...提一下代码规但...类名首字母大写...(详细请见匈牙利命名法)
然后是...你这个代码涉及对数据库的操作...所以如果把数据库说明会更方便处理.....
System.out.print(m.get("user"));//关于这个Map的get方法,我查了一下,还是有点迷茫...(后面付注释).
关于future.GetInfoFromDB类.首先你没说出你是否应用框架..这个类是某个框架的提供的接口?还是自己些的?但我也大概猜的出是处理SQL语句,然后返回一个List...但必定是猜..虽然八九不离十.....
关于Map m = (Map) l.get(0);中的List的get方法的应用和类型转换.下面是对应get方法的文档说明:返回列表中指定位置的元素。
3个质疑...你问的问题应该在第三处产生的....
注释:返回此映射中映射到指定键的值。如果此映射中没有该键的映射关系,则返回 null。返回 null 值并非一定 表明此映射不包含该键的映射关系;也可能此映射将该键显示地映射到 null。可使用 containsKey 操作来区分这两种情况。