一、MVC中基础的字符串转换
在MVC框架中,笔者用的是最基础的转换方法,我们在需要转换时候就进行转换,但是随着需求数量增加,我们要写很多行代码,最近笔者学习了如何自己封装一个字符串类型转换的工具类。
二、自己封装一个字符串转换类
话不多说,先上代码
public class CahracterUtil {
public static int getInt(HttpServletRequest request,String key){
try{
return Integer.decode(request.getParameter(key));
} catch (NumberFormatException e) {
return - 1;
}
}
public static long getLong(HttpServletRequest request,String key){
try{
return Long.parseLong(request.getParameter(key));
} catch (NumberFormatException e) {
return - 1;
}
}
public static Double getDouble(HttpServletRequest request,String key){
try{
return Double.parseDouble(request.getParameter(key));
} catch (NumberFormatException e) {
return - 1d;
}
}
public static boolean getBoolean(HttpServletRequest request,String key){
try{
return Boolean.parseBoolean(request.getParameter(key));
} catch (NumberFormatException e) {
return false;
}
}
public static String getString(HttpServletRequest request, String key) {
try{
String result = request.getParameter(key);
if(result!=null){
result = result.trim();
}
if("".equals(result)){
result=null;
}
return result;
} catch (Exception e) {
return null;
}
}
}
这样封装一个属于我们自己的字符串转换的工具类,可以极大减少代码量,同时降低了代码的耦合性,避免了重复编写无用的代码。能够在多个项目,或者多个类中用到。
这里需要注意一点,笔者用了Long.parseLong
或者Boolean.parseBoolean
这样的写法,而非是Long.valueOf
,两种写法都可以,在笔者的项目中,用不到封装和拆封的步骤,因此笔者选择了前者。前者少了封装和拆封的步骤,并没有性能上太大的差别。
下面说如何调用我们自己封装的工具类。
String shopStr = CahracterUtil.getString(request, "shopStr");
ObjectMapper mapper = new ObjectMapper();
Shop shop;
try {
shop = mapper.readValue(shopStr, Shop.class);
} catch (IOException e) {
e.printStackTrace();
}
如这段代码所示,申明shopStr字符串,在调用CahracterUtil这个类中相应的方法即可 。