经验分享——工具类

简介: 最近工程抓取到了几个崩溃信息,查看了下抓取到的bug,都是工具类出现异常,以前写完工具类都要测试好多遍,不觉着工具类会出现什么问题,就没太在意,但是最近发现有好多奇葩设备,奇葩的自定义系统不按常规出牌,就是会有各种各样的问题。

最近工程抓取到了几个崩溃信息,查看了下抓取到的bug,都是工具类出现异常,以前写完工具类都要测试好多遍,不觉着工具类会出现什么问题,就没太在意,但是最近发现有好多奇葩设备,奇葩的自定义系统不按常规出牌,就是会有各种各样的问题。

工具类就是为其他方法提供方便使用的工具,那么最最重要的就是要保证工具自身好用,起码不能影响调用者。

下面总结几点Android下工具类需要具备的几点基本要求

工具类

  1. final修饰

    工具类不再需要继承,也没有必要让别人继承,那么final修饰一下,提升下逼格。

  2. 构造方法私有化

    工具类一般不允许new对象,直接使用工具类名,点,方法名就可以了

  3. 方法public static修饰

    工具类私有化以后,想要调用工具方法,必须使用public static修饰

  4. 没有返回值的方法均 try catch

    如果工具类出现问题,在cathc里做处理

  5. 有返回值的的方法均 try catch finally

    如果工具类出现问题,在catch里做处理,在finally里返回一个默认值

在满足以上几点基本要求的基础上,再去实现工具内容

当然,逻辑严谨是最重要的,不要依赖于try catch

eg

package …….utils;

import ……;

/**
 * Created by kongqw on 2015/12/3.
 */
public final class TextUtil {
    private TextUtil() {
    }

    /**
     * 处理空字符串
     *
     * @param input
     * @return
     */
    public static String replaceSpace(String input) {
        String str = null;
        try {
            str = input.replaceAll("\t", "").replaceAll(" ", "").replaceAll("\r", "").replaceAll("\n", "").replaceAll("\b", "");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            return str;
        }
    }

    ……
}
相关文章
|
8月前
|
架构师 Java 程序员
终于拿到了阿里P8架构师分享的JCF和JUC源码分析与实现笔记java岗
前言 时代的一粒尘,落在每个人身上,就是一座山”。 时代更迭变换,我们好像都知道今天与昨天不同,又好像肉眼看不出哪里不同。 但其实它就正在以各种各样的方式体现在每一个普通人身上。 疫情爆发三个月的时间,截止2020年4月份 全国2296家影视公司破产,1万2千多家教育机构消失,1万1千多家旅游公司倒闭,5万多家小餐馆关门。 截至9月底,疫情影响之下已有46万企业宣布倒闭,而你的资金还能支撑多久? 除此之外, 8月,重庆疫情反复,沙坪坝、九龙坡、巴南、南岸区,一波平复,一波又起... 8月,连续40℃高温天气,引发多起的山林火灾,重庆市限制商业用电,以保居民用电... 8月,海南
70 0
|
18小时前
|
关系型数据库 C# 数据库
技术笔记:MSCL超级工具类(C#),开发人员必备,开发利器
技术笔记:MSCL超级工具类(C#),开发人员必备,开发利器
|
22小时前
|
编解码 JSON 网络安全
技术经验分享:Javahttpclent请求httpclentUtils工具类
技术经验分享:Javahttpclent请求httpclentUtils工具类
|
1月前
|
缓存 Java
【JAVA进阶篇教学】第五篇:Java多线程编程
【JAVA进阶篇教学】第五篇:Java多线程编程
|
9月前
|
缓存 Java 程序员
面试进阶齐飞!Github一天万赞的阿里Java系统性能优化有多牛?
前两天在知乎上看到一个问答,说的是: 一个Java程序员具备什么样的素质和能力才可以称得上高级工程师? 这个问题也引发了我的一些思考,可能很多人会说,“作为高级工程师,基础得过硬、得熟练掌握一门编程语言、至少看过一个优秀开源项目的源代码、有过高并发/性能优化的工作经验、沟通能力强等等”。
61 0
|
7月前
|
负载均衡 NoSQL Java
阿里Java一面,难度适中!(下篇)
阿里Java一面,难度适中!(下篇)
130 0
阿里Java一面,难度适中!(下篇)
|
1月前
|
开发框架 架构师 Java
Java程序员不掌握SpringBoot怎么进大厂,阿里架构师推荐实战文档
Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起时,还未得到普及使用。
|
9月前
|
Java 应用服务中间件 数据库
Java:企业级java后端开发,需要掌握哪些内容
Java:企业级java后端开发,需要掌握哪些内容
421 1
|
9月前
|
消息中间件 分布式计算 NoSQL
阿里P8面试官推荐学习的11大专题:java面试精讲框架文档
本篇文章给大家分享一波,阿里P8面试官推荐学习的11大专题:java面试精讲框架文档,主要包含11大块的内容:spring、springcloud、netty、zookeeper、kafka、Hadoop、HBASE、Cassandra、elasticsearch、spark、flink;希望大家能够喜欢!!
|
10月前
|
Java 程序员
第二季:0本课程前提要求和说明【Java面试题】
第二季:0本课程前提要求和说明【Java面试题】
68 0