JAVA-SSM封装字符串转换的工具类

桃浪十七丶
• 阅读 1266

一、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这个类中相应的方法即可 。

点赞
收藏
评论区
推荐文章
happlyfox happlyfox
3年前
go好用的类型转换第三方组件
关于我通过学习和分享的过程,将自己工作中的问题和技术总结输出,希望菜鸟和老鸟都能通过自己的文章收获新的知识,并付诸实施。Cast介绍Cast是什么?Cast是一个库,以一致和简单的方式在不同的go类型之间转换。Cast提供了简单的函数,可以轻松地将数字转换为字符串,将接口转换为bool类型等等。当一个明显的转换是可能的时,Cast会智
happlyfox happlyfox
3年前
go好用的类型转换第三方组件 [cast]
关于我Cast介绍Cast是什么?Cast是一个库,以一致和简单的方式在不同的go类型之间转换。Cast提供了简单的函数,可以轻松地将数字转换为字符串,将接口转换为bool类型等等。当一个明显的转换是可能的时,Cast会智能地执行这一操作。它不会试图猜测你的意思,例如,你只能将一个字符串转换为int的字符串表示形式,例如“8”。Cast是为Hugo开发的
Stella981 Stella981
3年前
Python标准库笔记(8) — pprint模块
struct模块提供了用于在字节字符串和Python原生数据类型之间转换函数,比如数字和字符串。  该模块作用是完成Python数值和C语言结构体的Python字符串形式间的转换。这可以用于处理存储在文件中或从网络连接中存储的二进制数据,以及其他数据源。1\.模块函数和Struct类  它除了提供一个Struct类之外,还
Easter79 Easter79
3年前
Swift解读专题四——字符串与字符
Swift解读专题四——字符串与字符一、引言      Swift中提供了String类型与Characters类型来处理字符串和字符数据,Swift中的String类型除了提供了许多方便开发者使用的方法外,还可以与Foundation框架的NSString类进行转换,使用起来十分方便。二
Wesley13 Wesley13
3年前
Java类型转换工具类(十六进制—bytes互转、十进制—十六进制互转,String—Double互转)
/数据类型转换工具类@authorcyf/publicclassNumConvertUtil{/bytes转16进制字符串@parambArray
Easter79 Easter79
3年前
Struts2 转换器
转换器从一个HTML表单到一个Action对象,类型转换是从字符串到非字符串Http没有“类型”的概念,每一项表单的输入只可能是一个字符串或一个字符串数组,在服务器端必须把String转换为特定的数据类型在struts2中把请求参数映射到action属性的工作由Paramet
Wesley13 Wesley13
3年前
Java异常情况
从网上了解了这些Java异常,遇到过一些,大部分还没遇到:1、SQLException:操作数据库异常类。2、ClassCastException:数据类型转换异常。3、NumberFormatException:字符串转换为数字类型时抛出的异常。4、java.lang.NullPointerException  异常的解释是"程
Wesley13 Wesley13
3年前
C++重载双目运算符(2)(对象与数之间)
有两种方法:(1)采用重载双目运算符方式(2)1.类型转换函数(将类的对象转换为其他数据类型)2.转换构造函数(将其他类型转换为类的对象)(仍然要配合重载双目运算符的方式,因为最终实现的是类的两个对象相加)(注意:类型转换函数和转换构造函数不可同时使用,会出现二
Easter79 Easter79
3年前
SpringBoot2(十一)集成RedisCache
应用层的东西,找到接口实现它即可。如果想要自己选择序列化工具,难点还是在自动转型上,在序列化字符串转成对象的过程中,Spring并未提供有效的、带Class参数的接口,类型自动转换问题,需要第三方框架自行处理。最好选用带自动转型的序列化框架,错误的写法,很容易导致类型强转失败,本文采用的是FastJSON。简单的工具类,按自己需求封装,可以指定
Stella981 Stella981
3年前
SpringBoot2(十一)集成RedisCache
应用层的东西,找到接口实现它即可。如果想要自己选择序列化工具,难点还是在自动转型上,在序列化字符串转成对象的过程中,Spring并未提供有效的、带Class参数的接口,类型自动转换问题,需要第三方框架自行处理。最好选用带自动转型的序列化框架,错误的写法,很容易导致类型强转失败,本文采用的是FastJSON。简单的工具类,按自己需求封装,可以指定