package dealService;import java.util.HashMap;
class  Msg101 extends MsgHead{                                                                        public HashMap<String, MsgField> map101;

public Msg101()
{
map101=new HashMap(18);
map101.put("msgLength", new MsgField<String>());
map101.put("sendCode", new MsgField<String>());
map101.put("receivssseCode", new MsgField<String>());
map101.put("consignDate", new MsgField<String>());
map101.put("consignTime", new MsgField<String>());
map101.put("dealNum", new MsgField<String>());
map101.put("msgNum", new MsgField<String>());
map101.put("headReserved", new MsgField<String>());
map101.put("etID", new MsgField<String>());
map101.put("machineID", new MsgField<String>());
map101.put("icCardID", new MsgField<String>());
map101.put("agreementNum", new MsgField<String>());
map101.put("money", new MsgField<String>());
map101.put("currency", new MsgField<String>());
map101.put("MAC", new MsgField<String>());
map101.put("bodyReserved", new MsgField<String>());
map101.put("stdStr", new MsgField<Byte[]>());

}


public MsgField<String> getValue(String key) {

MsgField<String> test=map101.get(key);
return new MsgField<String>();

}
 
}
问题:我现在我要去取哈希表对应的对象,由于我定义的是泛型,如果18个 new MsgField<?>());?号里面的类型都不一样,我要累死,代码也超级烦琐,试问反射可以搞定吗?动态检测然后自动匹配结果类型

解决方案 »

  1.   

    我感觉JAVA里的反射是针对类的.尽管它也是一个类..但没反射过HashTable...关注 !   
      

  2.   

    java 不只有类的反射,还有对象的反射!
      

  3.   

    我觉得泛型本身是为了提供编译期对类型的检查才被创建的.它在被擦除后和反射不一样吗?都是Object.我觉得这两个本身就是对立的.本人菜鸟.还望后面的达人指教