反射工具类

反射工具类ReflectionUtils.java 进行数据库查询操作经常用到,包括getDeclaredField、getDeclaredMethod、getFieldValue、getSuperClassGenricType、getSuperGenericType、invokeMethod、makeAccessible、setFieldValue 立即下载
package test.dynamicToBean;

import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

/**
 * 反射工具类 <br />
 * <br />
 * 提供了一系列的获取某一个类的信息的方法<br />
 * 包括获取全类名,实现的接口,接口的泛型等<br />
 * 并且提供了根据Class类型获取对应的实例对象的方法,以及修改属性和调用对象的方法等
 */
public class ReflectionUtils {

	/**
	 * 获取包名
	 * 
	 * @return 包名【String类型】
	 */
	public static String getPackage(Class<?> clazz) {
		Package pck = clazz.getPackage();
		if (null != pck) {
			return pck.getName();
		} else {
			return "没有包!";
		}
	}

	/**
	 * 获取继承的父类的全类名
	 * 
	 * @return 继承的父类的全类名【String类型】
	 */
	public static String getSuperClassName(Class<?> clazz) {
		Class<?> superClass = clazz.getSuperclass();
		if (null != superClass) {
			return superClass.getName();
		} else {
			return "没有父类!";
		}
	}

	/**
	 * 获取全类名
	 * 
	 * @return 全类名【String类型】
	 */
	public static String getClassName(Class<?> clazz) {
		return clazz.getName();
	}

	/**
	 * 获取实现的接口名
	 * 
	 * @return 所有的接口名【每一个接口名的类型为String,最后保存到一个List集合中】
	 */
	public static List<String> getInterfaces(Class<?> clazz) {
		Class<?>[] interfaces = clazz.getInterfaces();
		int len = interfaces.length;

		List<String> list = new ArrayList<String>();
		for (int i = 0; i < len; i++) {
			Class<?> itfc = interfaces[i];

			// 接口名
			String interfaceName = itfc.getSimpleName();

			list.add(interfaceName);
		}

		return list;
	}

	/**
	 * 获取所有属性
	 * 
	 * @return 所有的属性【每一个属性添加到StringBuilder中,最后保存到一个List集合中】
	 */
	public static List<StringBuilder> getFields(Class<?> clazz) {
		Field[] fields = clazz.getDeclaredFields();
		int len = fields.length;

		List<StringBuilder> list = new ArrayList<StringBuilder>();
		StringBuilder sb = null;
		for (int i = 0; i < len; i++) {
			Field field = fields[i];
			sb = new StringBuilder();

			// 修饰符
			String modifier = Modifier.toString(field.getModifiers());
			sb.append(modifier + " ");

			// 数据类型
			Class<?> type = field.getType();
			String typeName = type.getSimpleName();
			sb.append(typeName + " ");

			// 属性名
			String fieldName = field.getName();
			sb.append(fieldName + ";");

			list.add(sb);
		}

		return list;
	}

	/**
	 * 获取所有公共的属性
	 * 
	 * @return 所有公共的属性【每一个属性添加到StringBuilder中,最后保存到一个List集合中】
	 */
	public static List<StringBuilder> getPublicFields(Class<?> clazz) {
		Field[] fields = clazz.getFields();
		int len = fields.length;

		List<StringBuilder> list = new ArrayList<StringBuilder>();
		StringBuilder sb = null;
		for (int i = 0; i < len; i++) {
			Field field = fields[i];
			sb = new StringBuilder();

			// 修饰符
			String modifier = Modifier.toString(field.getModifiers());
			sb.append(modifier + " ");

			// 数据类型
			Class<?> type = field.getType();
			String typeName = type.getSimpleName();
			sb.append(typeName + " ");

			// 属性名
			String fieldName = field.getName();
			sb.append(fieldName + ";");

			list.add(sb);
		}

		return list;
	}

	/**
	 * 获取所有构造方法
	 * 
	 * @return 所有的构造方法【每一个构造方法添加到StringBuilder中,最后保存到一个List集合中】
	 */
	public static List<StringBuilder> getConstructors(Class<?> clazz) {
		Constructor<?>[] constructors = clazz.getDeclaredConstructors();
		int len = constructors.length;

		List<StringBuilder> list = new ArrayList<StringBuilder>();
		StringBuilder sb = null;
		for (int i = 0; i < len; i++) {
			Constructor<?> constructor = constructors[i];
			sb = new StringBuilder();

			// 修饰符
			String modifier = Modifier.toString(constructor.getModifiers());
			sb.append(modifier + " ");

			// 方法名(类名)
			String constructorName = clazz.getSimpleName();
			sb.append(constructorName + " (");

			// 形参列表
			Class<?>[] parameterTypes = constructor.getParameterTypes();
			int length = parameterTypes.length;
			for (int j = 0; j < length; j++) {
				Class<?> parameterType = parameterTypes[j];

				String parameterTypeName = parameterType.getSimpleName();

				if (j < length - 1) {
					sb.append(parameterTypeName + ", ");
				} else {
					sb.append(parameterTypeName);
				}

			}

			sb.append(") {}");

			list.add(sb);
		}

		return list;
	}

	/**
	 * 获取所有自身的方法
	 * 
	 * @return 所有自身的方法【每一个方法添加到StringBuilder中,最后保存到一个List集合中】
	 */
	public static List<StringBuilder> getMethods(Class<?> clazz) {
		Method[] methods = clazz.getDeclaredMethods();
		int len = methods.length;

		List<StringBuilder> list = new ArrayList<StringBuilder>();
		StringBuilder sb = null;
		for (int i = 0; i < len; i++) {
			Method method = methods[i];
			sb = new StringBuilder();

			// 修饰符
			String modifier = Modifier.toString(method.getModifiers());
			sb.append(modifier + " ");

			// 返回值类型
			Class<?> returnClass = method.getReturnType();
			String returnType = returnClass.getSimpleName();
			sb.append(returnType + " ");

			// 方法名
			String methodName = method.getName();
			sb.append(methodName + " (");

			// 形参列表
			Class<?>[] parameterTypes = method.getParameterTypes();
			int length = parameterTypes.length;

			for (int j = 0; j < length; j++) {
				Class<?> parameterType = parameterTypes[j];

				// 形参类型
				String parameterTypeName = parameterType.getSimpleName();

				if (j < length - 1) {
					sb.append(parameterTypeName + ", ");
				} else {
					sb.append(parameterTypeName);
				}

			}

			sb.append(") {}");

			list.add(sb);
		}

		return list;
	}

	/**
	 * 获取所有公共的方法
	 * 
	 * @return 所有公共的方法【每一个方法添加到StringBuilder中,最后保存到一个List集合中】
	 */
	public static List<StringBuilder> getPublicMethods(Class<?> clazz) {
		Method[] methods = clazz.getMethods();
		int len = methods.length;

		List<StringBuilder> list = new ArrayList<StringBuilder>();
		StringBuilder sb = null;
		for (int i = 0; i < len; i++) {
			Method method = methods[i];
			sb = new StringBuilder();

			// 修饰符
			String modifier = Modifier.toString(method.getModifiers());
			sb.append(modifier + " ");

			// 返回值类型
			Class<?> returnClass = method.getReturnType();
			String returnType = returnClass.getSimpleName();
			sb.append(returnType + " ");

			// 方法名
			String methodName = method.getName();
			sb.append(methodName + " (");

			// 形参列表
			Class<?>[] parameterTypes = method.getParameterTypes();
			int length = parameterTypes.length;

			for (int j = 0; j < length; j++) {
				Class<?> parameterType = parameterTypes[j];

				// 形参类型
				String parameterTypeName = parameterType.getSimpleName();

				if (j < length - 1) {
					sb.append(parameterTypeName + ", ");
				} else {
					sb.append(parameterTypeName);
				}

			}

			sb.append(") {}");

			list.add(sb);
		}

		return list;
	}

	/**
	 * 获取所有的注解名
	 * 
	 * @return 所有的注解名【每一个注解名的类型为String,最后保存到一个List集合中】
	 */
	public static List<String> getAnnotations(Class<?> clazz) {
		Annotation[] annotations = clazz.getAnnotations();
		int len = annotations.length;

		List<String> list = new ArrayList<String>();
		for (int i = 0; i < len; i++) {
			Annotation annotation = annotations[i];

			String annotationName = annotation.annotationType().getSimpleName();
			list.add(annotationName);
		}

		return list;
	}

	/**
	 * 获取父类的泛型
	 * 
	 * @return 父类的泛型【Class类型】
	 */
	public static Class<?> getSuperClassGenericParameterizedType(Class<?> clazz) {
		Type genericSuperClass = clazz.getGenericSuperclass();

		Class<?> superClassGenericParameterizedType = null;

		// 判断父类是否有泛型
		if (genericSuperClass instanceof ParameterizedType) {
			// 向下转型,以便调用方法
			ParameterizedType pt = (ParameterizedType) genericSuperClass;
			// 只取第一个,因为一个类只能继承一个父类
			Type superClazz = pt.getActualTypeArguments()[0];
			// 转换为Class类型
			superClassGenericParameterizedType = (Class<?>) superClazz;
		}

		return superClassGenericParameterizedType;
	}

	/**
	 * 获取接口的所有泛型
	 * 
	 * @return 所有的泛型接口【每一个泛型接口的类型为Class,最后保存到一个List集合中】
	 */
	public static List<Class<?>> getInterfaceGenericParameterizedTypes(Class<?> clazz) {
		Type[] genericInterfaces = clazz.getGenericInterfaces();
		int len = genericInterfaces.length;

		List<Class<?>> list = new ArrayList<Class<?>>();
		for (int i = 0; i < len; i++) {
			Type genericInterface = genericInterfaces[i];

			// 判断接口是否有泛型
			if (genericInterface instanceof ParameterizedType) {
				ParameterizedType pt = (ParameterizedType) genericInterface;

				// 得到所有的泛型【Type类型的数组】
				Type[] interfaceTypes = pt.getActualTypeArguments();

				int length = interfaceTypes.length;

				for (int j = 0; j < length; j++) {
					// 获取对应的泛型【Type类型】
					Type interfaceType = interfaceTypes[j];
					// 转换为Class类型
					Class<?> interfaceClass = (Class<?>) interfaceType;
					list.add(interfaceClass);
				}

			}

		}

		return list;
	}

	/**
	 * 打印包名
	 */
	public static void printPackage(Class<?> clazz) {
		System.out.println(getPackage(clazz));
	}

	/**
	 * 打印继承的父类的全类名
	 */
	public static void printSuperClassName(Class<?> clazz) {
		System.out.println(getSuperClassName(clazz));
	}

	/**
	 * 打印全类名
	 */
	public static void printClassName(Class<?> clazz) {
		System.out.println(getClassName(clazz));
	}

	/**
	 * 打印实现的接口
	 */
	public static void printInterfaces(Class<?> clazz) {
		List<String> list = getInterfaces(clazz);
		int size = list.size();
		if (0 < size) {
			for (int i = 0; i < size; i++) {
				System.out.println(list.get(i));
			}
		} else {
			System.out.println("没有实现接口!");
		}
	}

	/**
	 * 打印所有属性
	 */
	public static void printFields(Class<?> clazz) {
		List<StringBuilder> list = getFields(clazz);
		int size = list.size();
		if (0 < size) {
			for (int i = 0; i < size; i++) {
				System.out.println(list.get(i));
			}
		} else {
			System.out.println("没有属性!");
		}
	}

	/**
	 * 打印所有公共的属性
	 */
	public static void printPublicFields(Class<?> clazz) {
		List<StringBuilder> list = getPublicFields(clazz);
		int size = list.size();
		if (0 < size) {
			for (int i = 0; i < size; i++) {
				System.out.println(list.get(i));
			}
		} else {
			System.out.println("没有属性!");
		}
	}

	/**
	 * 打印所有构造方法
	 */
	public static void printConstructors(Class<?> clazz) {
		List<StringBuilder> list = getConstructors(clazz);
		int size = list.size();
		if (0 < size) {
			for (int i = 0; i < size; i++) {
				System.out.println(list.get(i));
			}
		} else {
			System.out.println("没有构造方法!");
		}
	}

	/**
	 * 打印所有方法
	 */
	public static void printMethods(Class<?> clazz) {
		List<StringBuilder> list = getMethods(clazz);
		int size = list.size();
		if (0 < size) {
			for (int i = 0; i < size; i++) {
				System.out.println(list.get(i));
			}
		} else {
			System.out.println("没有方法!");
		}
	}

	/**
	 * 打印所有公共的方法
	 */
	public static void printPublicMethods(Class<?> clazz) {
		List<StringBuilder> list = getPublicMethods(clazz);
		int size = list.size();
		if (0 < size) {
			for (int i = 0; i < size; i++) {
				System.out.println(list.get(i));
			}
		} else {
			System.out.println("没有方法!");
		}
	}

	/**
	 * 打印所有的注解
	 */
	public static void printAnnotations(Class<?> clazz) {
		List<String> list = getAnnotations(clazz);
		int size = list.size();
		if (0 < size) {
			for (int i = 0; i < size; i++) {
				System.out.println(list.get(i));
			}
		} else {
			System.out.println("没有注解!");
		}
	}

	/**
	 * 打印父类的泛型名
	 */
	public static void printSuperClassGenericParameterizedType(Class<?> clazz) {
		Class<?> superClassGenericParameterizedType = getSuperClassGenericParameterizedType(clazz);
		if (null != superClassGenericParameterizedType) {
			System.out.println(superClassGenericParameterizedType.getSimpleName());
		} else {
			System.out.println("父类没有泛型!");
		}
	}

	/**
	 * 打印接口的泛型
	 */
	public static void printInterfaceGenericParameterizedTypes(Class<?> clazz) {
		List<Class<?>> list = getInterfaceGenericParameterizedTypes(clazz);
		int size = list.size();
		if (0 < size) {
			for (int i = 0; i < size; i++) {
				System.out.println(list.get(i).getSimpleName());
			}
		} else {
			System.out.println("没有泛型接口!");
		}
	}

	/**
	 * 打印一个类的相关信息
	 * 
	 * @param clazz
	 */
	public static void printAll(Class<?> clazz) {
		System.out.print("【包名】  ");
		printPackage(clazz);

		System.out.print("【类名】  ");
		System.out.println(clazz.getSimpleName());

		System.out.println("\n【父类全类名】");
		printSuperClassName(clazz);
		System.out.println("【全类名】");
		printClassName(clazz);
		System.out.println("\n【所有已实现的接口】");
		printInterfaces(clazz);

		System.out.println("\n【属性】");
		printFields(clazz);
		System.out.println("\n【构造方法】");
		printConstructors(clazz);
		System.out.println("\n【方法】");
		printMethods(clazz);

		System.out.println("\n【公共的属性】");
		printPublicFields(clazz);
		System.out.println("\n【公共的方法】");
		printPublicMethods(clazz);
	}

	/**
	 * 根据Class类型,获取对应的实例【要求必须有无参的构造器】
	 * 
	 * @return 对应的实例【Object类型】
	 */
	public static Object getNewInstance(Class<?> clazz) throws InstantiationException, IllegalAccessException {
		return clazz.newInstance();
	}

	/**
	 * 根据传入的类的Class对象,以及构造方法的形参的Class对象,获取对应的构造方法对象
	 * 
	 * @param clazz          类的Class对象
	 * @param parameterTypes 构造方法的形参的Class对象【可以不写】
	 * @return 构造方法对象【Constructor类型】
	 */
	public static Constructor<?> getConstructor(Class<?> clazz, Class<?>... parameterTypes)
			throws NoSuchMethodException, SecurityException {
		return clazz.getDeclaredConstructor(parameterTypes);
	}

	/**
	 * 根据传入的构造方法对象,以及,获取对应的实例
	 * 
	 * @param constructor 构造方法对象
	 * @param initargs    传入构造方法的实参【可以不写】
	 * @return 对应的实例【Object类型】
	 */
	public static Object getNewInstance(Constructor<?> constructor, Object... initargs)
			throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
		constructor.setAccessible(true);
		return constructor.newInstance(initargs);
	}

	/**
	 * 根据传入的属性名字符串,修改对应的属性值
	 * 
	 * @param clazz 类的Class对象
	 * @param name  属性名
	 * @param obj   要修改的实例对象
	 * @param value 修改后的新值
	 */
	public static void setField(Class<?> clazz, String name, Object obj, Object value)
			throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
		Field field = clazz.getDeclaredField(name);
		field.setAccessible(true);
		field.set(obj, value);
	}

	/**
	 * 根据传入的方法名字符串,获取对应的方法
	 * 
	 * @param clazz          类的Class对象
	 * @param name           方法名
	 * @param parameterTypes 方法的形参对应的Class类型【可以不写】
	 * @return 方法对象【Method类型】
	 */
	public static Method getMethod(Class<?> clazz, String name, Class<?>... parameterTypes)
			throws NoSuchMethodException, SecurityException {
		return clazz.getDeclaredMethod(name, parameterTypes);
	}

	/**
	 * 根据传入的方法对象,调用对应的方法
	 * 
	 * @param method 方法对象
	 * @param obj    要调用的实例对象【如果是调用静态方法,则可以传入null】
	 * @param args   传入方法的实参【可以不写】
	 * @return 方法的返回值【没有返回值,则返回null】
	 */
	public static Object invokeMethod(Method method, Object obj, Object... args)
			throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
		method.setAccessible(true);
		return method.invoke(obj, args);
	}

}

 

上一篇:【Java知识点详解 11】反射

下一篇:Java基础知识总结(绝对经典)

java反射工具类 ReflectionUtils 该工具类下载后拷贝到你要用的包,只需该包名即可 立即下载

相关推荐

WPF数据可视化:LiveCharts自定义X轴与Y轴的5个实战技巧(附完整代码)

本文详细介绍了在WPF应用中使用LiveCharts进行数据可视化时,自定义X轴与Y轴的5个核心实战技巧。内容涵盖精确控制刻度步距、深度定制视觉样式、实现多轴布局对比、优化显示空间以及构建响应式动态轴,并提供了完整的C#和XAML代码示例,帮助开发者创建专业且用户体验出色的图表。

moss5的博客 693

反射工具类ReflectionUtils

AVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 通俗点讲,反射就是把java类中的各种成分映射成一个个的Java对象。 例如:类的class声明(class对象),变量(field),方法(method)等等信息,利用反射技术可以对一个类进行解剖,动态获取信息进行处理。1、获取Class对象的三种方式 1.1 Object ——> getClass(

aizhupo1314的博客 4812

【微知】关于GB200 NVL72服务器的一些信息?(36CPU72GPU;LPDDR5X 17T;HBM3e 13.5T;5代NVlink 1.8TB; 720P算力FP8;120Kw)

本文仅根据官网介绍分析,存在纰漏仅供参考。

技术札记 5397

java反射工具类(ReflectionUtils)

ReflectionUtils是一个Java反射工具类,它提供了一些简化反射操作的方法。下面对它的主要特点进行总结:获取类的信息:ReflectionUtils可以获取类的各种信息,比如类名、类的修饰符、类的父类、实现的接口等。这些信息可以通过调用ReflectionUtils的方法来获取。创建对象:ReflectionUtils可以通过反射来创建对象。它提供了一个createInstance方法,可以根据类名来创建相应的对象。调用方法:ReflectionUtils可以通过反射来调用类的方法。

Flying_Fish_roe的博客 2171

VMware ubuntu虚拟机(或Centos7)与主机共享文件夹

系统环境 Windows 10 Vmware Workstation 15 Pro Ubuntu 20.04.1 LTS centos7 1.Ubuntu配置共享文件 1.1安装VMware-tools 更新最新VMware-tools组件 编辑->首选项->更新->立即下载所有组件 安装VMware-tools 虚拟机->安装VMware-tools 安装后ubuntu会加载一个虚拟光驱,解压文件,在解压的文件目录下执行以下命令进行安装 sudo vmware-instal

weixin_38924500的博客 2160

手把手教你用TP4056和PMOS管搭建锂电池自动切换电路(含元器件选型指南)

本文详细介绍了如何使用TP4056和PMOS管搭建锂电池自动切换电路,包括核心架构设计、元器件选型指南和PCB布局优化。通过智能充电算法和电源路径切换模块,实现外部供电与锂电池的无缝切换,提升便携式设备的电源管理效率。

julia4scientist的博客 891

【ReflectionUtils类】带你从原生反射走进反射工具类

反射Reflection被视为动态语言的关键,是一种功能强大且复杂的机制,其不仅被应用Java语言中,也被应用在Go语言中,因此,它在我们的开发过程中非常重要。

weixin_51360020的博客 1596

股票分时数据获取-东方财富

获取下股票分时数据,分时均价下线,分时成交额等,用于量化t0交易条件还是很不错了的。

meiaoxue1234的博客 1万+

Java反射的简明应用-反射工具类

反射工具类所实现的功能内容包括:获取类所有的属性(包括从父类继承的),直接通过反射获取、设置对象属性的值,反射调用类的静态方法,通过反射调用方法,查找唯一被指定注释声明的域,获得指定注释声明的字段属性、方法,获取全部使用指定注释声明的get方法。

飞翔的心 3001

基于Termux的Android平台OpenClaw部署:移动端AI助理实现

本文介绍了在Android设备上通过Termux部署OpenClaw AI助理的方案。Android设备的便携性、Termux提供的完整Linux环境以及多样化的硬件配置使其成为理想的部署平台。文章详细分析了不同级别Android设备的硬件规格(从入门级到旗舰级),并提供了最低/推荐配置要求。部署步骤包括Termux安装初始化、Python环境配置以及性能优化建议。该方案充分利用Android设备的传感器和电池供电优势,为移动办公、学习等场景提供了低成本、高便携性的AI助理解决方案。

博客 3015

Cadence Orcad Capture原理图断线的检查与避免方法

在设计电路图中,尤其是直接借鉴别人的设计进行二次开发的过程中难免会遇到如下尴尬的情况。有没有眼神好的朋友发现图纸的哪里有不对劲的地方呢?

fydar的博客 3270

Android 反射工具类

一.Android反射工具类 package xx.com; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public clas...

xuwei7746521的博客 1031

基于ArduPilot的旋翼式无人机飞行器开发系列(二,学习路线)

一,热爱 作为一名耿直的技术男,在这里我只想说一句,热爱是可持续学习的第一要素,也只有热爱才能让你坚持到最后。 至于最后能得到什么,只有你自己知道。常说书中自有颜如玉,书中自有黄金屋。如果你是为了颜如玉,我相信大多数颜如玉做不了你的红颜知己。如果是为了黄金屋,当你持续投入时间和金钱却看不到回报的时候,相信退堂鼓早已隆隆作响。 我给自己的信条就是为当下努力工作,为将来持续学习。当前飞控行业并没有爆发,如果想赚块钱,去互联网汽车,去VR/AR吧,去元宇宙吧。 那么我热爱...

从0到1,突破自己 1674

JAVA——反射工具类

JAVA——反射工具类 通过方法名调用方法 import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * 反射相关辅助方法 * @author Louis * @date Aug 19, 2018 */ public class ReflectionUtils { ...

hsg_happyLearning的博客 1330

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

工具类篇3——反射工具类(方法反射)

## 主要功能 - 方法名称操作【MethodUtil】 - 根据属性名称获取get/set/表列名字符串 - 方法反射工具类【ReflectUtil】 - 获取get/set/普通方法对象 - 直接运行get/set/普通方法对象 - 批量执行集合内所有对象的某个方法 - 批量对于私用属性解锁/加锁操作 - 获取类类型中所有属性列表

taotaojs的博客 587

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

工具类—反射工具类

提供访问私有变量,获取泛型类型Class, 提取集合中元素的属性, 转换字符串到对象等Util函数.

此博客已停用,博文会逐渐转移到新地址,http://blog.youkuaiyun.com/liupeifeng3514 1112

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java 反射工具类

java 反射工具类,有需要的朋友可以看一下,如果有帮到您请帮我点赞一下,如果有不同的观点和需求欢迎留言,大家一起讨论~~~ import com.google.common.collect.Lists; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang...

Mr_wangjk的博客 1066

java反射工具类

一个很好用的反射工具类 在 由google开发者写的 flogger-core-2.0.0.jar包下面 import com.jahnelgroup.flogger.BindExpand; import com.jahnelgroup.flogger.FloggerException; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.reflect.MethodSignature; import java.lang.reflect

MenBad的博客 245

Android反射调用工具类

在反射中调用工具类整理了一下,以后用反射 可以直接拿来用,代码如下: import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; /** * 反射...

恬静释然的博客 665

Java反射工具类

Java反射工具类 反射工具类,为我们提供了根据Class类型获取对应的实例对象的方法、通过set方法获取model对象的值,通过get方法获取model对象的值等。 /** * * ReflectUtil.java * 描述:反射工具类 * * 当前版本:1.0 * * 创建时间:*** * 作者: Lee */ package wit.util; import java.lang.reflect.Field; import java.lang.reflect.Method; impo

weixin_41006976的博客 2645

java 反射开源工具类_java反射工具类

packagecom.yingchao.kgou.core;importjava.lang.reflect.Field;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.lang.reflect.ParameterizedType;importjava.lang.r...

weixin_29643235的博客 413

反射调用工具类

反射调用工具类

for__future_的博客 235

java 反射开源工具类_Java 反射工具类

package com.su.dolphin.utils;import java.lang.reflect.Array;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.refl...

weixin_30386973的博客 244

android 反射工具类,Java 反射工具类

package com.su.dolphin.utils;import java.lang.reflect.Array;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.refl...

weixin_39892800的博客 131
上一篇: Java面试题总结(乱序版,2020-09-19)
下一篇: 【Java 代码实例 5】HashMap转JavaBean
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2953原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值