在这里插入代码片
@TOC
1、Collections.emptyList()
1、Collections.emptyList() 是 Java 中的一个静态方法,返回一个不可变的空列表。即使调用 add() 等修改列表内容的方法,它也会抛出 UnsupportedOperationException 异常。
该方法返回的是 Collections 类中的私有静态类 EmptyList 的实例,因此不需要创建新对象,可以直接使用,这样可以减少内存消耗。
以下是一个示例用法:
List<String> emptyList = Collections.emptyList();
System.out.println(emptyList); // 输出:[]
在这个例子中,我们创建了一个空列表 emptyList,并将其输出。由于该列表为空,因此输出为 “[]”。
需要注意的是,由于 Collections.emptyList() 返回的列表是不可变的,因此不能对其进行添加、删除或修改等操作。如果需要可变的空列表,可以使用 new ArrayList<>() 创建一个空的可变列表。
1.1 好处
:
返回空列表而不是 null 通常被认为是一种更好的实践,因为它可以避免在代码中出现许多繁琐的 null 检查。当使用
Collections.emptyList() 返回空列表时,我们可以放心地对其进行操作,无需担心可能出现的
NullPointerException。此外,由于 Collections.emptyList()
方法返回的是一个单例对象,多个调用该方法的地方都可以共享相同的实例,从而减少内存消耗。还有一个原因是,在某些情况下,方法可能需要返回不可变的集合,例如 API 中的某些公共方法。如果返回 null,将会增加客户端代码中检查
null 的负担,这使得代码更加脆弱和难以维护。而使用空集合,代码可以更容易地保持一致,并且更不容易出错。因此,虽然在某些情况下返回 null 可能是合适的,但在其他情况下,返回空集合可能会更好地满足代码的需求。
1.2 前端展示结果
如果使用 Collections.emptyList() 返回的空列表作为前端展示的结果,那么在前端展示的结果将是一个空数组 []。
例如,在 JavaScript 中,可以使用 JSON.stringify() 方法将返回的空列表转换为字符串,并将其显示在页面上:
const emptyList = []; // 这里假设已经通过 AJAX 请求获取了 emptyList 数据
const emptyListJson = JSON.stringify(emptyList);
console.log(emptyListJson); // 输出:[]
当使用 JSON.stringify() 将空列表转换为字符串时,它会被转换为空数组 []。在前端展示时,您可以根据需要格式化空数组的外观并显示空消息,告诉用户没有数据可用。
需要注意的是,前端展示的结果可能因具体情况而异,因为它取决于所使用的技术和展示方式。
2、new ObjectMapper()
ObjectMapper是Jackson库中的一个类,用于将JSON字符串转换(反序列化)为Java对象或将Java对象序列化为JSON字符串。这个类可以创建新的映射器实例。
在上面的示例代码中,我们使用以下代码创建了一个新的ObjectMapper实例:
ObjectMapper objectMapper = new ObjectMapper();
使用ObjectMapper时,您通常需要调用其方法来将JSON字符串转换为Java对象或反之。例如,要将JSON字符串转换为Java对象,您可以使用以下代码:
String json = "{\"name\": \"John Doe\", \"age\": 30}";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);
在这个例子中,我们首先创建了一个包含JSON字符串的变量。 然后,我们使用ObjectMapper创建了一个新实例。 最后,我们使用readValue方法将JSON字符串转换为一个Java对象并将其赋值给一个名为person的变量。
除了将JSON字符串转换为Java对象之外,您还可以使用ObjectMapper将Java对象序列化为JSON字符串。 下面是一个示例:
Person person = new Person();
person.setName("John Doe");
person.setAge(30);
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(person);
在这个例子中,我们首先创建了一个Person对象并设置了它的属性。 然后,我们使用ObjectMapper创建了一个新实例。 最后,我们使用writeValueAsString方法将Person对象序列化为JSON字符串,并将其赋值给一个名为json的变量。