Java编程一些经验

为了更好地书写安全和易于维护的java代码,现对于外部的一些java类库进行一些介绍,同时,对于常用的模式和编程技巧进行简要的描述。部分代码转自ImportNew。

1.    Apache Commons

StringUtils类主要处理字符串,包括字符串的截取、判断是否为空等使用的操作。

ArrayUtils类主要处理数组,包括数组的常用操作。

FileUtils类主要处理文件,包括文件的各种操作。Java API的文件处理有许多繁琐的操作,用这个工具类可以大大简化java的代码量。

2.    Google Guava

Files类提供了一些文件的处理,许多方法是Apache Commons包中都没有的方法,处理文件十分方便。

处理前置条件,请使用Preconditions类中的checkArgument和checkNotNull方法。

Null是java中比较难处理的东西,建议使用Optional进行null处理,这样会避免出现空指针异常。

Strings类同样处理字符串数据,有一些Apache Commons中没有的方法。

 使用Maps、Sets、Lists类构造集合。

3.    SLF4J

存在有很多Java日志解决方案。我最喜欢的是SLF4J,因为它是一个可插入的且能同时联合许多不同的日志框架。

它是一个日志框架,具体的日志实现可以是log4j或者log back。个人更加的倾向于用log back。据我所知log4j目前已经不进行维护了。

4.    建造者模式

如果我们要构建一个复杂的对象的时候,同时,这个对象对于每个实例可能有不同的构建方式的时候,最好选择建造者模式,代码如下:

public class ComplicatedDataHolder {

    public final String data;

    public final int num;

    // lots more fields and a constructor

 

    public static class Builder {

        private String data;

        private int num;

 

        public Builder data(String data) {

            this.data = data;

            return this;

        }

 

        public Builder num(int num) {

            this.num = num;

            return this;

        }

 

        public ComplicatedDataHolder build() {

            return new ComplicatedDataHolder(data, num); // etc

        } 

    }

}

调用方式:

final ComplicatedDataHolder cdh = new ComplicatedDataHolder.Builder()

    .data("set this")

    .num(523)

    .build();

5.    时间库Joda-Time

Java本身的API对于时间的处理很有限,有的时候,需要自己写一套处理时间的API,现在可以选择Joda-Time,查看这个jar包中是否有自己需要的方法,进行处理。

6.    学会用TODO

在Eclipse中的源代码中,对于只实现一部分的类或者方法可以使用//TODO进行标志。

我们可以在Tasks中查看代码中哪个部分用了//TODO操作。协调开发的时候经常会使用//TODO标志。

原文地址:https://www.cnblogs.com/our880tom/p/4729878.html