千家信息网

如何编写一个Java工具类

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,今天就跟大家聊聊有关如何编写一个Java 工具类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。今天我也以如何编写一个 Java 工具类为话题,
千家信息网最后更新 2024年12月13日如何编写一个Java工具类

今天就跟大家聊聊有关如何编写一个Java 工具类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

今天我也以如何编写一个 Java 工具类为话题,给大家规范一下工具类如何编写

最近我在做 code review 时,发现了一些开发人员在编写工具类时的小问题,所以在这里我简单的讲一下我的个人理解。

首先说明一下,这个工具类的规范不是我定义的,而是我参考众多知名开源框架发现的。

先说第一种情况,如果工具类中的方法全部时静态方法,那么可以将工具类作为一个 abstract 抽象类。Spring 框架中存在大量的这样的使用。

然后,如果工具类中有异常,请抛出,不要自己去 try-catch。更不要 try 了之后 e.printStackTrace() 。

还有就是工具类中要不要打印日志问题,尽量不要打印,像 log4j 这样的一些第三方日志框架也不要用。降低于第三方类库的依赖。

还有一情况是,工具类中的方法非 static 的。那你可以将工具类定义为 final class,考虑到工具类应该不能被继承。在私有化它的构造函数,提供一个单例。

工具类的命名应该用 Util 结尾,例如 LogUtil。

像下面这种工具类,就千万要注意了。

至于工具类中的方法应该设计为静态的还是非静态的,这个没有统一的标准。各有各的好,参加大多数开源框架,static 的多一些。

工具类的设计,推荐大家多看看 Guava、Apache Commons。

像大名鼎鼎的 Hutool,它提到了工具类的 6 大设计思想。方法优先于对象、自动识别优于用户定义、便捷性与灵活性并存、适配与兼容、可选依赖原则、无侵入原则。

Hutool 中的工具类,既没有采用抽象类 abstract class 有没有采用 final class。所以我更喜欢 Spring、Guava、Apache Commons等框架的源码。

看完上述内容,你们对如何编写一个Java 工具类有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0