SpringSide的工具类。
pk: org.springside.core.utils
public class GenericsUtils
/**
* 通过反射,获得定义Class时声明的父类的范型参数的类型. 如public BookManager extends GenricManager<Book>
*
* @param clazz clazz The class to introspect
* @param index the Index of the generic ddeclaration,start from 0.
* @return the index generic declaration, or <code>Object.class</code> if cannot be determined
*/
public static Class getSuperClassGenricType(Class clazz, int index) {
//得到clazz的父类
Type genType = clazz.getGenericSuperclass();
//如果没有实现ParameterizedType 接口,即不支持泛型,所以直接返回Object.class
//**这个接口是jdk1.5以后才出来的。
if (!(genType instanceof ParameterizedType)) {
log.warn(clazz.getSimpleName() + "'s superclass not ParameterizedType");
return Object.class;
}
// 返回表示此类型实际类型参数的 Type 对象的数组,数组里放的都是对应类型的Class
//如UserAction extends StrutsSecurityAction<User, UserManager> 就返回User和UserManager类型
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
if (index >= params.length || index < 0) {
log.warn("Index: " + index + ", Size of " + clazz.getSimpleName() + "'s Parameterized Type: "+ params.length);
return Object.class;
}
if (!(params[index] instanceof Class)) {
log.warn(clazz.getSimpleName() + " not set the actual class on superclass generic parameter");
return Object.class;
}
return (Class) params[index];
}
分享到:
相关推荐
它通过标准化的项目结构、精心管理的依赖和一系列实用工具,降低了Spring应用的入门难度。如果你在寻找一个稳定且易用的Java开发框架,SpringSide-core-4.1.0无疑是一个值得考虑的选择。同时,对于那些已经使用...
pom.xml配置 ...mvn install:install-file -DgroupId=org.springside -DartifactId=springside-core -Dversion=4.2.2.GA -Dfile=./springside-core-4.2.2.GA.jar -Dpackaging=jar -DgeneratePom=true
springside-core-4.3.0.jar 最新版springside-core的jar包
总的来说,springside-core-4.1.0.GA.jar为Java开发者提供了强大的工具和实践,它简化了基于Spring的应用开发,提升了项目的整体质量和开发效率。无论你是初学者还是经验丰富的开发者,都能从中受益。
1. **Core**:这是SpringSide的核心模块,包含了一些通用的工具类和配置,如日志管理、代码生成器、属性文件管理等,为项目提供了基础服务。 2. **Demo**:示例模块,提供了各种应用场景的实例,帮助开发者快速理解...
springside-core-4.2.2.GA.pom springside-core-4.2.2.GA.pomspringside-core-4.2.2.GA.pomspringside-core-4.2.2.GA.pomspringside-core-4.2.2.GA.pom
springside-core-4.2.3-GA.jar,如果jar包不完整,可能会导致异常:LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context
3. **自动化构建工具**:SpringSide通常与Maven或Gradle等自动化构建工具结合使用,以管理项目的依赖关系和构建过程。在4.2.2.GA版本中,可能已经优化了这些集成,确保开发者可以轻松地构建和测试项目。 4. **代码...
5. **工具类集**:springside3-core-3.0.4提供了一套丰富的工具类,涵盖了日志、反射、集合操作等多个方面,这些都是日常开发中的常用工具,理解其源码有助于提高代码质量。 6. **测试框架集成**:项目包含了对...
这个名为“springside-4.0.0.GA.zip”的压缩包,就像是JavaEE开发者的春天,带来丰富的知识与技术启示。 SpringSide项目始于对Spring Framework的深度理解和实践,它的核心在于简化Spring的使用,让开发者能够更...
通过分析其源码,我们可以深入理解 SpringSide 的设计理念和实现方式,进一步提升我们的 Java 开发技能。 一、项目结构与模块解析 SpringSide 3.2.2 的源码结构清晰,主要包括以下模块: 1. `core`:核心模块,...
springside-core-4.2.2.GA.jar
SpringSide是基于Spring框架的一个轻量级的开发工具集,它旨在简化Spring应用的开发过程,提供了一系列实用的工具类和配置模版,使得开发者可以更加高效地进行Java企业级应用的开发。本文将对"Springside-core-4.2.2...
springside-core-4.2.2.GA.jar 包,需要的可以自行下载,
在本文中,我们将深入探讨 springside-3.3.4 版本的源码,理解其设计思想,以及如何利用它来提升我们的开发效率。 首先,SpringSide 项目的核心是模块化设计。3.3.4 版本包含了若干个模块,如 Core、Module、Tool ...
备份自己用,太难找了,springside-core.4.0.0.RC3 。
可用的jar包,springside-core-4.1.1-SNAPSHOT.jar 免费下载
springside-core-3.3.4.jar包,上传方便自己后续使用。