理解引用类型变量的存储方式
2016-12-22 11:14
239 查看
想通过另一个List来复制现有list,然后使用新list进行操作,保证原list不变,如下代码并不能实现
正确的方式为
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);
}
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);
}
相关文章推荐
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- 从内存理解c语言中变量的存储类型
- 从内存理解c语言中变量的存储类型
- 关于引用类型变量存储的问题
- 从内存理解c语言中变量的存储类型
- C语言:自己动手查看float以及double类型的变量2.5在内存中的存储方式。
- [深入理解PHP] -- PHP变量在内存中的存储方式
- 关于java基础类型与引用类型内存存储问题,以及string.intern()方法(String两种创建方式的区别)
- 如果从函数中返回局部变量的地址,引用或者指针的形式,则变量类型必须是静态的或者常量,即不在栈中存储
- javascript语言两种变量类型及存储方式
- java类型存储方式理解
- java中的基本数据类型和引用数据类型以及它们的存储方式堆内存和栈内存
- C++中RTTI动态类型识别、静态成员、变量的四种存储方式
- C类型和存储方式的语言变量
- 深入理解PHP变量的值类型和引用类型
- C# 数据类型的引用类型、值类型内存存储方式以及区别; 函数参数传递的引用传递(址传递)、值传递区别
- 变量类型、存储方式、函数声明调用——记录
- 从内存理解c语言中变量的存储类型
- C语言之变量类型和存储方式
- C语言之变量类型和存储方式