在写应用的时候经常设计到对List的操作问题,比如个从Dao里取得数据,返回一个List,当该list为空,或者size == 0的时候回去抛异常,或者做一些其它业务逻辑,我见过好多项目中都会在开始建立的时候写一大堆的Utils类,其中就包或对String,List等的操作,我觉得完全没有必要自己写这些了,spring util包已经能够满足我们的需求了.
org.springframework.util
CollectionUtils.java
下边是我认为操作集合最常用不过的两个方法了,代码很简单清爽:
//可以传入List 等实现了Collection接口的集合进去
public static boolean isEmpty(Collection collection) {
return (collection == null || collection.isEmpty());
}
//重载了isEmpty方法,可以传实现了Map接口的集合进去,比如:HashMap
public static boolean isEmpty(Map map) {
return (map == null || map.isEmpty());
}
StringUtils.java
同样的,字符串的常用操作也是不可少的:
//判断字符序列是否有长度
public static boolean hasLength(CharSequence str) {
return (str != null && str.length() > 0);
}
//判断字符串是否有长度,复用了上边的方法
public static boolean hasLength(String str) {
return hasLength((CharSequence) str);
}
这里的CharSequence是JDK里String所实现的一个接口:
通过查看JDK6.0的源码可以看到:
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence
CharSequence 有什么样的方法呢:继续跟进去看:
public interface CharSequence {
//返回字符序列的长度
int length();
//返回字符序列中指定位置的字符
char charAt(int index);
//按照参数start和end返回指定位置的子 字符序列
CharSequence subSequence(int start, int end);
//这个不用说了吧
public String toString();
}
判断了字符串是否有长度还不够,万一是一个长度为10的空格组成的字符串呢,在做一些应用开发的时候,这样的数据往往是没有意义的,Spring照样也有这样的方法,继续往下看:
还是在StringUtils.java中:
public static boolean hasText(CharSequence str) {
//这里首先保证字符
if (!hasLength(str)) {
return false;
}
int strLen = str.length();
for (int i = 0; i < strLen; i++) {
if (!Character.isWhitespace(str.charAt(i))) {
return true;
}
}
return false;
}
//重载了上边的方法,参数换为String类型,复用上边方法
public static boolean hasText(String str) {
return hasText((CharSequence) str);
}
有时候处理数据又不希望在字符串中出现空格,跟上边方法相反的可以判断字符序列中是否有空格:
//判断字符序列中是否有空格
public static boolean containsWhitespace(CharSequence str) {
if (!hasLength(str)) {
return false;
}
int strLen = str.length();
for (int i = 0; i < strLen; i++) {
//这里的判断刚好跟上边那个方法相反
if (Character.isWhitespace(str.charAt(i))) {
return true;
}
}
return false;
}
//同样的重载上边这个方法
public static boolean containsWhitespace(String str) {
return containsWhitespace((CharSequence) str);
}
还有类似好多的常用方法,其实都能用到,除此以为还有ObjectUtils、ClassUtils等等,有心去的朋友去看一下Spring2.5.6的源代码,没必要再自己重新写Utils包了,软件的目标是复用,已经有的轮子就没有必要再发明一次了,希望我的文章能帮助你,本人水平有限,如有不对欢迎大家拍砖。
分享到:
相关推荐
然后,通过导入相关的类和方法,你就可以在代码中使用Base64Utils的功能了。 总的来说,`base64utils.jar`是Java开发中的一个实用工具,它简化了Base64编码和解码任务,提高了代码的可读性和效率。无论你是初学者...
以上只是Spring框架部分常用包的简要介绍,实际使用中,开发者可以根据需求选择相应的模块进行集成,构建出满足业务需求的高效、稳定的Java应用。Spring框架的强大之处在于其模块化设计,允许开发者根据项目规模和...
使用"ExcelUtils按模板导出所需的JAR包",你需要将这个压缩包解压,得到包含ExcelUtils库的JAR文件。将这个JAR添加到你的项目类路径中,就可以在代码中引入并使用ExcelUtils的相关方法了。在编写代码时,参照工具类...
5. **spring-core-4.2.6.RELEASE.jar**:核心工具类,包括基本的IoC和AOP支持,如ClassUtils、ResourceUtils等。 6. **spring-expression-4.2.6.RELEASE.jar**:Spring表达式语言(SpEL),用于在运行时查询和操作...
2. **spring-core.jar**:核心工具类库,提供了资源加载、反射和类型转换等基础功能,例如`org.springframework.core`包下的Resource接口和ClassUtils类。 3. **spring-context.jar**:包含了应用上下文相关的类,...
11. **spring-tx.jar**:事务管理模块,支持编程式和声明式事务管理,可以与JDBC、Hibernate、JPA等数据访问技术配合使用。 12. **spring-orm.jar**:提供了与ORM框架(如Hibernate、JPA、iBatis)集成的支持。 13...
本篇文章将深入探讨Spring框架的核心组件以及必备的jar包,帮助你更好地理解和使用Spring。 首先,Spring框架的核心组件包括IoC(Inversion of Control,控制反转)容器、AOP(Aspect Oriented Programming,面向切...
这些jar包的使用通常根据项目需求进行选择,例如,如果只需要使用Spring的DI功能,那么`spring-core`和`spring-beans`可能就足够了。但如果涉及Web开发,`spring-web`和`spring-webmvc`就是必需的。 接下来,我们...
6. **commons-logging-1.2.jar**: 这是Apache Commons Logging库,它是Spring框架的日志抽象层,允许Spring使用多种日志框架,如Log4j、Java内置的日志系统等,而无需硬编码具体的日志实现。 这些jar包共同构成了...
在开发一个图书商城系统时,`utils`包和数据库配置类是至关重要的组成部分。`utils`包通常包含各种通用工具类,提供复用性高、功能广泛的辅助方法,以简化代码逻辑,提高代码效率。而数据库配置类则关乎整个系统的...
在使用Spring进行开发时,需要依赖一系列的jar包来支持其核心功能和服务。下面将详细阐述这些jar包的作用及其在Spring框架中的重要性。 1. **Spring Core Container**: - `spring-core.jar`: 核心模块,提供了IoC...
如果当前线程的ClassLoader无法获取到资源,Spring会转而使用加载org.springframework.util.ClassUtils类的ClassLoader。 在Spring加载配置文件时,我们需要注意几个关键点: 1. **不使用通配符**:当配置文件路径...
spring-core-3.2.18.RELEASE-sources.jar (spring 3.2.18源码source),导入到Eclipse里面进行查看。
`org.springframework.core`包下的`ClassUtils`和`MethodInvokingFactoryBean`等类在AOP的动态代理过程中起到关键作用。 4. **spring-context.jar**:提供了更高级的应用上下文功能,如事件发布、国际化、AOP代理的...
6. `org.springframework.core-3.0.6.RELEASE.jar`: 这是Spring框架的基础模块,包含了一些核心的类和接口,如ClassUtils、MethodInvokingFactoryBean等,它们为其他模块提供基本服务。 7. `org.springframework....
httpclient工具类包含get,post,put,delete请求
在实际项目中,为提高性能和减少资源消耗,我们会使用连接池管理Redis连接,例如使用`LettuceConnectionFactory`或`JedisConnectionFactory`(Spring Data Redis中的实现)。连接池提供了一种有效地重复使用连接的...
这些工具类通常被封装在某个库或框架中,比如Apache Commons Lang、Google Guava或者是Spring Framework中的org.springframework.util包。在这个"javautils"压缩包中,我们可以预见到包含了一些自定义的Java工具类,...
6. commons-logging-1.2.jar:这是一个外部的日志库,Spring框架使用它来实现日志记录。Apache Commons Logging是一个轻量级的日志抽象层,它允许应用程序在不改变代码的情况下更换底层日志实现。 总的来说,这些...