Java中使用反射获取一个类的全部信息

	public static void getFunctionAllMessages(String className) throws ClassNotFoundException, InstantiationException,
			IllegalAccessException, IllegalArgumentException, InvocationTargetException {

		// className为类的全名
		Class c = Class.forName(className);
		// 获取类名
		System.out.println("类名:" + c.getSimpleName());
		// 获取父类名
		System.out.println("父类名:" + c.getSuperclass().getSimpleName());
		// 获取这个类的全部方法
		Method[] methods = c.getMethods();
		System.out.println("方法有:");
		for (int i = 0; i < methods.length; i++) {
			// 打印这个方法的修饰符 返回类型 方法名
			System.out.println(Modifier.toString(methods[i].getModifiers()) + " " + methods[i].getReturnType().getName()
					+ " " + methods[i].getName() + "();");

			// 反射调用特定方法
			// if(methods[i].getName().equals("isEmpty")) {
			// Object ob = c.newInstance();
			// System.out.println("===="+methods[i]);
			// System.out.println(methods[i].invoke(ob));
			// }
		}

		System.out.println("属性有:");
		// 获取这个类的全部属性
		Field[] fields = c.getDeclaredFields();

		for (int i = 0; i < fields.length; i++) {
			// 打印属性的 修饰符 类型 名称
			System.out.println(Modifier.toString(fields[i].getModifiers()) + " " + fields[i].getGenericType() + " "
					+ fields[i].getName());
		}

	}

 

调用方法,打印String类的信息:

Java中使用反射获取一个类的全部信息_第1张图片

打印结果:

Java中使用反射获取一个类的全部信息_第2张图片

Java中使用反射获取一个类的全部信息_第3张图片

你可能感兴趣的:(JAVA)