小编mic*_*son的帖子

如何限制方法仅接受对象作为参数而不是类对象作为类型文字?

我想将对象作为参数而不是类对象传递为类型文字.我尝试了很多方法,但没有得到输出.

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()方法来创建另一个对象,因为我也需要旧的对象实例值.

有什么建议?

java generics

5
推荐指数
1
解决办法
122
查看次数

映射替换了列表对象的所有相同键值

我试图从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)

java

3
推荐指数
1
解决办法
340
查看次数

标签 统计

java ×2

generics ×1