我想将对象作为参数而不是类对象传递为类型文字.我尝试了很多方法,但没有得到输出.
public <T> List<Map<String,Object>> getUIElementsList(Class<T> requiredType) {
doSomeThing();
return this.fieldList;
}
Run Code Online (Sandbox Code Playgroud)
如果我运行的代码将接受以下值作为参数传递.如果我有一个FormBean类
FormBean formBean = new FormBean();
formBean.setUserId(252528);
getUIElementsList(FormBean.class); //restrict this case
getUIElementsList(formBean);
Run Code Online (Sandbox Code Playgroud)
我希望该方法只能接受已经创建的intance对象.我甚至不能使用newInstance()方法来创建另一个对象,因为我也需要旧的对象实例值.
有什么建议?
我试图从bean列表中替换仅选定索引的地图详细信息,但它替换了包含相同键的每个列表对象的所有值.如果我在创建新值之前创建新的map对象,那么它工作正常,但我想知道下面的代码行为异常的原因.
public static void main(String[] args) {
List<PolicyAddlnInsuredBean> lst = new ArrayList<PolicyAddlnInsuredBean>();
PolicyAddlnInsuredBean pb = new PolicyAddlnInsuredBean();
Map<String, Map<String, Object>> epInfoMap = new HashMap<String, Map<String,Object>>();
Map<String,Object> map = new HashMap<String, Object>();
map.put("addtlnInsReqd", "YES");
map.put("selectedFlg", "No");
epInfoMap.put("AL", map);
pb.setEpInfoMap(epInfoMap);
lst.add(pb);
epInfoMap = new HashMap<String, Map<String,Object>>();
map = new HashMap<String, Object>();
map.put("addtlnInsReqd", "YES");
map.put("selectedFlg", "No");
epInfoMap.put("AL", map);
pb.setEpInfoMap(epInfoMap);
lst.add(pb);
lst.get(0).getEpInfoMap().get("AL").put("selectedFlg", "Yes");
System.out.println(lst);
}
Run Code Online (Sandbox Code Playgroud)
我的Pojo课程:
public class PolicyAddlnInsuredBean{
private Map<String,Map<String,Object>> epInfoMap =new HashMap<String, Map<String,Object>>();
public Map<String, Map<String, Object>> getEpInfoMap() {
return epInfoMap;
} …Run Code Online (Sandbox Code Playgroud)