您的位置:首页 > 其它

理解引用类型变量的存储方式

2016-12-22 11:14 239 查看
想通过另一个List来复制现有list,然后使用新list进行操作,保证原list不变,如下代码并不能实现

public BasicInfo getBasicInfoByNeed(String sid, List<String> needList){
List<String> need = needList;
need.add("subject");
need.add("school_type");
if(need.contains("rethink"))
need.add("knowledge");
DBObject dbObject = new BasicDBObject();
dbObject.put("_id", sid);
BasicDBObject fieldsObject=new BasicDBObject();
for(String field:need)
fieldsObject.put(field, true);
Query query = new BasicQuery(dbObject, fieldsObject);
return mongoTemplate.findOne(query, BasicInfo.class);
}

正确的方式为

public BasicInfo getBasicInfoByNeed(String sid, List<String> needList){
List<String> need = new ArrayList<>().addAll(needList)
needList.add("subject");
needList.add("school_type");
if(needList.contains("rethink"))
needList.add("knowledge");
DBObject dbObject = new BasicDBObject();
dbObject.put("_id", sid);
BasicDBObject fieldsObject=new BasicDBObject();
for(String field:needList)
fieldsObject.put(field, true);
Query query = new BasicQuery(dbObject, fieldsObject);
return mongoTemplate.findOne(query, BasicInfo.class);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐