一、MVC中基础的字符串转换
在MVC框架中,笔者用的是最基础的转换方法,我们在需要转换时候就进行转换,但是随着需求数量增加,我们要写很多行代码,最近笔者学习了如何自己封装一个字符串类型转换的工具类。
二、自己封装一个字符串转换类
话不多说,先上代码
1public class CahracterUtil { 2 public static int getInt(HttpServletRequest request,String key){ 3 try{ 4 return Integer.decode(request.getParameter(key)); 5 } catch (NumberFormatException e) { 6 return - 1; 7 } 8 } 9 10 public static long getLong(HttpServletRequest request,String key){ 11 try{ 12 return Long.parseLong(request.getParameter(key)); 13 } catch (NumberFormatException e) { 14 return - 1; 15 } 16 } 17 18 public static Double getDouble(HttpServletRequest request,String key){ 19 try{ 20 return Double.parseDouble(request.getParameter(key)); 21 } catch (NumberFormatException e) { 22 return - 1d; 23 } 24 } 25 26 public static boolean getBoolean(HttpServletRequest request,String key){ 27 try{ 28 return Boolean.parseBoolean(request.getParameter(key)); 29 } catch (NumberFormatException e) { 30 return false; 31 } 32 } 33 34 public static String getString(HttpServletRequest request, String key) { 35 try{ 36 String result = request.getParameter(key); 37 if(result!=null){ 38 result = result.trim(); 39 } 40 if("".equals(result)){ 41 result=null; 42 } 43 return result; 44 } catch (Exception e) { 45 return null; 46 } 47 } 48} 49
这样封装一个属于我们自己的字符串转换的工具类,可以极大减少代码量,同时降低了代码的耦合性,避免了重复编写无用的代码。能够在多个项目,或者多个类中用到。
这里需要注意一点,笔者用了Long.parseLong或者Boolean.parseBoolean这样的写法,而非是Long.valueOf,两种写法都可以,在笔者的项目中,用不到封装和拆封的步骤,因此笔者选择了前者。前者少了封装和拆封的步骤,并没有性能上太大的差别。
下面说如何调用我们自己封装的工具类。
1String shopStr = CahracterUtil.getString(request, "shopStr"); 2 ObjectMapper mapper = new ObjectMapper(); 3 Shop shop; 4 try { 5 shop = mapper.readValue(shopStr, Shop.class); 6 } catch (IOException e) { 7 e.printStackTrace(); 8 }
如这段代码所示,申明shopStr字符串,在调用CahracterUtil这个类中相应的方法即可 。
