in src/main/java/com/ql/util/express/ExpressUtil.java [603:632]
public static Object getProperty(Object bean, Object name) {
try {
if (bean == null && QLExpressRunStrategy.isAvoidNullPointer()) {
return null;
}
if (bean == null) {
throw new QLException("对象为空,不能获取属性:" + name);
}
if (bean.getClass().isArray() && "length".equals(name)) {
return Array.getLength(bean);
} else if (bean instanceof Class) {
if ("class".equals(name)) {
return bean;
} else if (QLExpressRunStrategy.isSandboxMode()) {
throw new QLException("无法获取属性:" + name);
} else {
Field f = ((Class<?>)bean).getDeclaredField(name.toString());
return f.get(null);
}
} else if (bean instanceof Map) {
return ((Map<?, ?>)bean).get(name);
} else if (QLExpressRunStrategy.isSandboxMode()) {
throw new QLException("无法获取属性:" + name);
} else {
return QLAliasUtils.getProperty(bean, name.toString());
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}