public static PropertyDescriptor[] getPropertyDescriptors(Class<?> clazz) throws BeanException {
		BeanInfo beanInfo;
		try {
			beanInfo = Introspector.getBeanInfo(clazz);
		} catch (IntrospectionException e) {
			throw new BeanException(e);
		}
		return ArrayUtil.filter(beanInfo.getPropertyDescriptors(), t -> {
			// 过滤掉getClass方法
			return false == "class".equals(t.getName());
		});
	}
@Test
	public void getPropertyDescriptorsTest() {
		final HashSet<Object> set = CollUtil.newHashSet();
		final PropertyDescriptor[] propertyDescriptors = BeanUtil.getPropertyDescriptors(SubPerson.class);
		for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) {
			set.add(propertyDescriptor.getName());
		}
		assertTrue(set.contains("age"));
		assertTrue(set.contains("id"));
		assertTrue(set.contains("name"));
		assertTrue(set.contains("openid"));
		assertTrue(set.contains("slow"));
		assertTrue(set.contains("subName"));
	}