在java工程中,一般我们会用UtilsTools的包名来封装一些通用的工具类。单单从字面上来看,两者都可以表示工具的意思,但往往并不能做出比较精准的定义。以下是本人对utils包与tools包的定义及理解:

定义:

包名

定义

方法或属性

举例

utils

通用的且与项目业务无关的类的组合;可供其他项目使用

方法通常是public static的;一般无类的属性,如果有,也是public static的

字符串工具类,文件工具类等

tools

当前项目中通用的业务类的组合;仅能当前项目使用

不限

用户校验工具类,支付工具类等

例子:

Utils:

public class StringUtils {
...
public static final String SPACE = " ";
public static final String EMPTY = "";
...
public static boolean isEmpty(final CharSequence cs) {
return cs == null || cs.length() == 0;
}
public static boolean isBlank(final CharSequence cs) {
int strLen;
if (cs == null || (strLen = cs.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if (!Character.isWhitespace(cs.charAt(i))) {
return false;
}
}
return true;
}
...
}

Tools:

/**
*验证工具类接口定义
*/
public interface VerificationTools {

/**
* 发送邮件验证码
* @param code 验证码
* @return EmailVo
*/
EmailVo sendEmail(VerificationCode code);

/**
* 验证用户
* @param user实体类
* @return 返回是或否
*/
Boolean validatedUser(User user);
}