提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
当多个地方用到同一个方法或者是在同一个方法仅仅多几个参数,使得多处几步处理,而最后返回的结果是一样的或者不返回,此时可以采取类的复用
# 一、什么是类的复用?
类的复用就是在少参数的函数上面添加一些固定的参数,然后返回多参数的函数本身达到复用的目的
二、使用步骤
1.复用过程举例如下
代码如下:
package utils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JsonUtils {
public static String getJson(Object object){
return getJson(object,"yyyy-MM-dd HH:mm:ss");
}
public static String getJson(Object object,String format){
ObjectMapper mapper = new ObjectMapper();
//不使用时间戳的方式
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
SimpleDateFormat sdf = new SimpleDateFormat(format);
mapper.setDateFormat(sdf);
try {
return mapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
}
2.需求
代码如下(示例):
package com.cjy.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import lombok.Data;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import pojo.User;
import utils.JsonUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Controller
public class controller {
@ResponseBody//不经过视图解析器,直接返回一个字符串
@RequestMapping("/t1")
public String hello() throws JsonProcessingException {
//jackson , objectMapper
ObjectMapper mapper = new ObjectMapper();
//创建一个对象
User user = new User("迪卢克",10);
String str=mapper.writeValueAsString(user);
return str;
}
@ResponseBody//不经过视图解析器,直接返回一个字符串
@RequestMapping("/t2")
public String hello2() throws JsonProcessingException {
//创建一个对象
User user = new User("迪卢克",10);
User user2 = new User("迪卢克2",10);
User user3 = new User("迪卢克3",10);
User user4 = new User("迪卢克4",10);
User user5 = new User("迪卢克5",10);
//创建一个集合
List<User> list= new ArrayList<User>();
list.add(user);
list.add(user2);
list.add(user3);
list.add(user4);
list.add(user5);
return JsonUtils.getJson(list);
}
@ResponseBody//不经过视图解析器,直接返回一个字符串
@RequestMapping("/t3")
public String hello3() throws JsonProcessingException {
Date date = new Date();
return JsonUtils.getJson(date);
}
}
总结
这里的两处都用到getjson方法而且返回都是json格式,那么可以对多参数进行复用,其中有一些固定参数可以直接写在少参数的方法里,经过中转最后全部是最后一个函数进行处理,前面只是起一个明面上的作用(引导)。
- hello2是对字符进行json格式化返回
- hello3是对时间格式先进行去除时间戳的处理后进行json格式化返回