java工具类该怎么写

java工具类该怎么写

  • 命名以复数(s)结尾,或者以Utils结尾

    ObjectsCollectionsIOUtilsFileUtils

  • 构造器私有化

    构造器私有化,这样无法创建实例,也无法产生派生类

  • 方法使用 static 修饰

    因为构造器私有化了,那么对外提供的方法就属于类级别

  • 异常需要抛出,不要 try-catch

    将异常交给调用者处理

  • 工具类不要打印日志

    工具类属于公共的,所以不要有定制化日志

  • 不要暴露可变属性

    工具类属于公共类,所以不要暴露可变的属性;如List集合等(可以返回不可变的集合,或者拷贝一个暴露给调用者,这样调用者修改了集合中元素,不会影响到工具类中的集合元素)

示例(JDK中Arrays摘录典型部分):

public class Arrays {
    
    /**
     * The minimum array length below which a parallel sorting
     * algorithm will not further partition the sorting task. Using
     * smaller sizes typically results in memory contention across
     * tasks that makes parallel speedups unlikely.
     */
    private static final int MIN_ARRAY_SORT_GRAN = 1 << 13;
    
    // Suppresses default constructor, ensuring non-instantiability.
    private Arrays() {}
    
    @SafeVarargs
    @SuppressWarnings("varargs")
    public static  List asList(T... a) {
        return new ArrayList<>(a);
    }
    
    public static int[] copyOfRange(int[] original, int from, int to) {
        int newLength = to - from;
        if (newLength < 0)
            throw new IllegalArgumentException(from + " > " + to);
        int[] copy = new int[newLength];
        System.arraycopy(original, from, copy, 0, Math.min(original.length - from, newLength));
        return copy;
    }
}

你可能感兴趣的:(java工具类该怎么写)