public static Object getFieldValue(Object bean, String fieldNameOrIndex) {
		if (null == bean || null == fieldNameOrIndex) {
			return null;
		}

		if (bean instanceof Map) {
			return ((Map<?, ?>) bean).get(fieldNameOrIndex);
		} else if (bean instanceof Collection) {
			try {
				return CollUtil.get((Collection<?>) bean, Integer.parseInt(fieldNameOrIndex));
			} catch (NumberFormatException e) {
				// 非数字，see pr#254@Gitee
				return CollUtil.map((Collection<?>) bean, (beanEle) -> getFieldValue(beanEle, fieldNameOrIndex), false);
			}
		} else if (ArrayUtil.isArray(bean)) {
			try {
				return ArrayUtil.get(bean, Integer.parseInt(fieldNameOrIndex));
			} catch (NumberFormatException e) {
				// 非数字，see pr#254@Gitee
				return ArrayUtil.map(bean, Object.class, (beanEle) -> getFieldValue(beanEle, fieldNameOrIndex));
			}
		} else {// 普通Bean对象
			return ReflectUtil.getFieldValue(bean, fieldNameOrIndex);
		}
	}
@Test
	public void getFieldValue() {
		final TestPojo testPojo = new TestPojo();
		testPojo.setName("名字");

		final TestPojo2 testPojo2 = new TestPojo2();
		testPojo2.setAge(2);
		final TestPojo2 testPojo3 = new TestPojo2();
		testPojo3.setAge(3);


		testPojo.setTestPojo2List(new TestPojo2[]{testPojo2, testPojo3});

		final BeanPath beanPath = BeanPath.create("testPojo2List.age");
		final Object o = beanPath.get(testPojo);

		assertEquals(Integer.valueOf(2), ArrayUtil.get(o, 0));
		assertEquals(Integer.valueOf(3), ArrayUtil.get(o, 1));
	}