「Java中用到的工具类」java定义一个工具类
今天给各位分享Java中用到的工具类的知识,其中也会对java定义一个工具类进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
实用的Java反射工具类
反射的Utils函数集合
提供访问私有变量 获取泛型类型Class 提取集合中元素的属性等Utils函数
package reflection
import java lang reflect Field import java lang reflect Modifier import java lang reflect ParameterizedType import java lang reflect Type import java util ArrayList import java util Collection import java util List
import mons beanutils PropertyUtils import mons lang StringUtils import slf j Logger import slf j LoggerFactory import springframework util Assert
/** * 反射的Utils函数集合 提供访问私有变量 获取泛型类型Class 提取集合中元素的属性等Utils函数
* * @author lei */ public class ReflectionUtils {
private static Logger logger = LoggerFactory getLogger(ReflectionUtils class)
private ReflectionUtils() { }
/** * 直接读取对象属性值 无视private/protected修饰符 不经过getter函数
*/ public static Object getFieldValue(final Object object final String fieldName) { Field field = getDeclaredField(object fieldName)
if (field == null)
throw new IllegalArgumentException( Could not find field [ + fieldName + ] on target [ + object + ] )
makeAccessible(field)
Object result = null try { result = field get(object) } catch (IllegalAccessException e) { logger error( 不可能抛出的异常{} e getMessage()) } return result }
/** * 直接设置对象属性值 无视private/protected修饰符 不经过setter函数
*/ public static void setFieldValue(final Object object final String fieldName final Object value) { Field field = getDeclaredField(object fieldName)
if (field == null)
throw new IllegalArgumentException( Could not find field [ + fieldName + ] on target [ + object + ] )
makeAccessible(field)
try { field set(object value) } catch (IllegalAccessException e) { logger error( 不可能抛出的异常 {} e getMessage()) } }
/** * 循环向上转型 获取对象的DeclaredField */ protected static Field getDeclaredField(final Object object final String fieldName) { Assert notNull(object object不能为空 ) return getDeclaredField(object getClass() fieldName) }
/** * 循环向上转型 获取类的DeclaredField */ @SuppressWarnings( unchecked )
protected static Field getDeclaredField(final Class clazz final String fieldName) { Assert notNull(clazz clazz不能为空 ) Assert hasText(fieldName fieldName ) for (Class superClass = clazz superClass != Object class superClass = superClass getSuperclass()) { try { return superClass getDeclaredField(fieldName) } catch (NoSuchFieldException e) { // Field不在当前类定义 继续向上转型 } } return null }
/** * 强制转换fileld可访问
*/ protected static void makeAccessible(final Field field) { if (!Modifier isPublic(field getModifiers()) || !Modifier isPublic(field getDeclaringClass() getModifiers())) { field setAccessible(true) } }
/** * 通过反射 获得定义Class时声明的父类的泛型参数的类型 如public UserDao extends HibernateDaoUser * * @param clazz * The class to introspect * @return the first generic declaration or Object class if cannot be * determined */ @SuppressWarnings( unchecked )
public static Class getSuperClassGenricType(final Class clazz) { return getSuperClassGenricType(clazz ) }
/** * 通过反射 获得定义Class时声明的父类的泛型参数的类型 如public UserDao extends * HibernateDaoUser Long * * @param clazz * clazz The class to introspect * @param index * the Index of the generic ddeclaration start from * @return the index generic declaration or Object class if cannot be * determined */
@SuppressWarnings( unchecked )
public static Class getSuperClassGenricType(final Class clazz final int index) {
Type genType = clazz getGenericSuperclass()
if (!(genType instanceof ParameterizedType)) { logger warn(clazz getSimpleName() + s superclass not ParameterizedType ) return Object class }
Type[] params = ((ParameterizedType) genType) getActualTypeArguments()
if (index = params length || index ) { logger warn( Index + index + Size of + clazz getSimpleName() + s Parameterized Type + params length) return Object class } if (!(params[index] instanceof Class)) { logger warn(clazz getSimpleName() + not set the actual class on superclass generic parameter ) return Object class } return (Class) params[index] }
/** * 提取集合中的对象的属性 组合成List * * @param collection * 来源集合
* @param propertityName * 要提取的属性名
*/ @SuppressWarnings( unchecked )
public static List fetchElementPropertyToList(final Collection collection final String propertyName) throws Exception {
List list = new ArrayList()
for (Object obj collection) { list add(PropertyUtils getProperty(obj propertyName)) }
return list }
/** * 提取集合中的对象的属性 组合成由分割符分隔的字符串
* * @param collection * 来源集合
* @param propertityName * 要提取的属性名
* @param separator * 分隔符
*/ @SuppressWarnings( unchecked )
lishixinzhi/Article/program/Java/hx/201311/26718
java中最常用的工具类有哪些
这要怎么跟你讲。简单的工作用到的60%左右的类库。复杂工程有可能需要用到90%左右的类库了。
主要看你日常工作需要用到的是什么了。也可以自己去封住一下,方便使用。
北大青鸟java培训:Java开发者需要了解的开发工具?
Java是世界上最强大的编程语言之一,很多开发人员和大型企业都偏爱Java,并且在各种应用场景中使用它。
在本文中,java课程为大家介绍几种Java库来帮助开发人员解决编程中遇到的各种相关问题。
一、JAVA核心扩展JAVA的标准库虽然提供了那些最基本的数据类型操作方法,但仍然对一些常见的需求场景,缺少实用的工具类。
而另一些则是JAVA标准库本身不够完善,需要第三方库去加以补充的。
1、ApacheCommonsLangApacheCommonsLang是Apache最著名的JAVA库,它是对java.lang的很好扩展,包含了大量非常实用的工具类,其中用的最多的有StringUtils,DateUtils,NumberUtils等。
除了ApacheCommonsLang,还有一些其他的Apache库也是对JAVA本身的很好补充,如ApacheCommonsCollection,ApacheCommonsIO,ApacheCommonsMath。
2、GoogleGuavaGoogleGuava包含了Google在自己的JAVA项目中所使用的一些核心JAVA库。
包含了对:集合,缓存,并发库,字符串处理,I/O等各个方面的支持。
另外Google开发的库总是以性能著称。
3、Joda-TimeJavaSE8之前的JAVA版本中对日期的支持是比较差的,Joda-Time被经常被使用来替换原有的日期系统,它能够支持更多的日历体系,并提供了很多非常方便的日期处理方法,而且它的性能也是非常出色的。
二、Web框架Web框架是一个应用最核心的部分,因此我总是推荐使用那些最标准的,并且有良好社区支持的框架,比如Spring和Struts。
1、Spring Spring是一个开源的应用框架,它包含很多子项目比如SpringMVC,SpringSecurity,SpringData,SpingBoot等等,几乎可以满足你项目上的所有需要。
它也是我开发Web项目的首选后端框架。
2、Struts2Struts2是Apache最有名的Web框架,它也是一个免费开源的MVC框架。
Struts也能很好地支持REST,SOAP,AJAX等最新技术。
除了上面提到的两个最常见的Web框架之外,还有如GoogleWebToolkit,Tapestry,Strips等一些优秀的框架可供选择。
三、数据库(持久层)持久层框架的选择对一个项目的成败同样非常关键,它会直接影响到系统的性能、质量、安全以及稳定性。
1、MyBatisMyBatis是我最喜欢的数据库(持久层)框架,因为它完全是基于SQL语句的(通过SQL来提取数据并自动映射为所需的数据对象),能够为我带来足够的灵活性。
2、SpringJDBC/SpringDataSpringJDBC并不是独立的Spring子项目,而是一个整合在Spring核心库内,为JDBC操作提供基本封装处理的模块。
通过简单的配置后,可以通过对Context中的jdbcTemplate进行调用来获得结果。
SpringData是Spring的一个子项目,提供了更加强大的持久层功能封装,和对象映射功能。
它能与SpringMVC很好地整合。
你可以利用JPA和CrudRepository来极大简化持久层的开发。
java 什么叫工具类
是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包
关于Java中用到的工具类和java定义一个工具类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。