Objects.requireNonNull(beanMap, "beanMap Could not null"); T to = newInstance(valueType); if (beanMap.isEmpty()) { return to; } else { copy((Object)beanMap, (Object)to); return to; }
时间: 2024-04-18 19:28:34 浏览: 16
这段代码的作用是将一个名为beanMap的对象复制到一个名为to的对象中。首先,使用Objects.requireNonNull()方法检查beanMap对象是否为空,如果为空,则抛出一个异常。然后,通过调用newInstance()方法创建一个valueType类型的新实例对象to。接下来,检查beanMap是否为空,如果为空,则直接返回to对象。否则,调用copy()方法将beanMap对象的属性复制到to对象中,最后返回to对象。
相关问题
String nearby = district.getString("nearby"); if(StringUtil.isEmpty(nearby)){ pi = new PoiSearchInfo(Constant.MAP_SEARCH_NEARBY, 5000, false, null, object.getString("keyword"),latLng); }else{ Map<String, String> map_currentaddress = AddressAutoCompleteUtil.getFullAddressByHalfAddr(nearby, ast.getContext()); String latitude = map_currentaddress.get(AddressAutoCompleteUtil.LAT); String longitude = map_currentaddress.get(AddressAutoCompleteUtil.LNG); latLng = new LatLng(Double.parseDouble(Objects.requireNonNull(latitude)), Double.parseDouble(Objects.requireNonNull(longitude))); pi = new PoiSearchInfo(Constant.MAP_SEARCH_NEARBY, 5000, false, null, object.getString("keyword"),latLng); } 这个代码和下面的代码有什么不同? String nearby = district.getString("nearby"); if (!StringUtil.isEmpty(nearby)) { Map<String, String> map_currentaddress = AddressAutoCompleteUtil.getFullAddressByHalfAddr(nearby, ast.getContext()); String latitude = map_currentaddress.get(AddressAutoCompleteUtil.LAT); String longitude = map_currentaddress.get(AddressAutoCompleteUtil.LNG); latLng = new LatLng(Double.parseDouble(Objects.requireNonNull(latitude)), Double.parseDouble(Objects.requireNonNull(longitude))); } pi = new PoiSearchInfo(Constant.MAP_SEARCH_NEARBY, 5000, false, null, object.getString("keyword"),latLng);
这两段代码的主要区别在于条件判断的方式和pi对象的赋值位置。
第一段代码中,使用了StringUtil.isEmpty()方法判断nearby是否为空,如果为空则执行if语句块内的逻辑,否则执行else语句块内的逻辑。在if语句块内,根据keyword和latLng创建了一个PoiSearchInfo对象,并将其赋值给pi。
而第二段代码中,使用了!StringUtil.isEmpty()方法判断nearby是否不为空,如果不为空则执行if语句块内的逻辑。在if语句块内,根据nearby获取了地理位置信息,并根据该信息获取经纬度,然后将经纬度赋值给latLng。接着,在if语句块外,根据keyword和latLng创建了一个PoiSearchInfo对象,并将其赋值给pi。
因此,第一段代码中的pi对象的赋值是在条件判断的内部进行的,而第二段代码中的pi对象的赋值是在条件判断的外部进行的。这导致了两段代码的执行顺序和pi对象的赋值时机有所不同。
StringUtils.isEmpty和Objects.isEmpty的区别
StringUtils.isEmpty() 和 Objects.isEmpty() 是两个不同的工具类方法,用于检查对象或字符串是否为空。
1. StringUtils.isEmpty():
- StringUtils 是 Apache Commons Lang 库中的一个工具类。
- StringUtils.isEmpty() 方法用于检查字符串是否为空。
- 它会判断传入的字符串是否为 null 或长度为 0,如果满足其中一个条件,则返回 true,否则返回 false。
- 例如,`StringUtils.isEmpty(str)` 可以检查字符串 str 是否为空。
2. Objects.isEmpty():
- Objects 是 Java 7 中引入的 java.util 包中的一个工具类。
- Objects.isEmpty() 方法用于检查对象是否为空。
- 它会判断传入的对象是否为 null,如果是 null,则返回 true,否则返回 false。
- 注意,该方法只能检查对象是否为 null,不能用于检查字符串是否为空。
- 例如,`Objects.isEmpty(obj)` 可以检查对象 obj 是否为空。
总结:
- StringUtils.isEmpty() 用于检查字符串是否为空,判断依据是字符串的长度和是否为 null。
- Objects.isEmpty() 用于检查对象是否为空,判断依据是对象是否为 null。
- StringUtils.isEmpty() 可以用于字符串的判空操作,而 Objects.isEmpty() 只能用于对象的判空操作。
相关推荐
![js](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)