public static <R> Class<R> getRealClass(Func0<?> func) {
		final SerializedLambda lambda = resolve(func);
		checkLambdaTypeCanGetClass(lambda.getImplMethodKind());
		return ClassUtil.loadClass(lambda.getImplClass());
	}
@Test
	public void getRealClassTest() {
		// 引用特定类型的任意对象的实例方法
		final Class<MyTeacher> functionClass = LambdaUtil.getRealClass(MyTeacher::getAge);
		assertEquals(MyTeacher.class, functionClass);
		// 枚举测试，不会导致类型擦除
		final Class<LambdaKindEnum> enumFunctionClass = LambdaUtil.getRealClass(LambdaKindEnum::ordinal);
		assertEquals(LambdaKindEnum.class, enumFunctionClass);
		// 调用父类方法，能获取到正确的子类类型
		final Class<MyTeacher> superFunctionClass = LambdaUtil.getRealClass(MyTeacher::getId);
		assertEquals(MyTeacher.class, superFunctionClass);

		final MyTeacher myTeacher = new MyTeacher();
		// 引用特定对象的实例方法
		final Class<MyTeacher> supplierClass = LambdaUtil.getRealClass(myTeacher::getAge);
		assertEquals(MyTeacher.class, supplierClass);
		// 枚举测试，只能获取到枚举类型
		final Class<Enum<?>> enumSupplierClass = LambdaUtil.getRealClass(LambdaKindEnum.REF_NONE::ordinal);
		assertEquals(Enum.class, enumSupplierClass);
		// 调用父类方法，只能获取到父类类型
		final Class<Entity<?>> superSupplierClass = LambdaUtil.getRealClass(myTeacher::getId);
		assertEquals(Entity.class, superSupplierClass);

		// 引用静态带参方法，能够获取到正确的参数类型
		final Class<MyTeacher> staticFunctionClass = LambdaUtil.getRealClass(MyTeacher::takeAgeBy);
		assertEquals(MyTeacher.class, staticFunctionClass);
		// 引用父类静态带参方法，只能获取到父类类型
		final Class<Entity<?>> staticSuperFunctionClass = LambdaUtil.getRealClass(MyTeacher::takeId);
		assertEquals(Entity.class, staticSuperFunctionClass);

		// 引用静态无参方法，能够获取到正确的类型
		final Class<MyTeacher> staticSupplierClass = LambdaUtil.getRealClass(MyTeacher::takeAge);
		assertEquals(MyTeacher.class, staticSupplierClass);
		// 引用父类静态无参方法，能够获取到正确的参数类型
		final Class<MyTeacher> staticSuperSupplierClass = LambdaUtil.getRealClass(MyTeacher::takeIdBy);
		assertEquals(MyTeacher.class, staticSuperSupplierClass);
	}