private Object safeValue(Object value){ if(null == value){ return Classes.getDefaultValue(type); } return value; }
static <T> T toPrimitive(Object value,Class<T> targetType) { if(null == value){ return (T)Classes.getDefaultValue(targetType); }else{ return convert(value,Primitives.wrap(targetType)); } }
public Object invokeStatic(Object... args) { try { if(parameters.length != args.length){ throw new IllegalArgumentException("argument's length must be " + parameters.length); } for(int i=0;i<args.length;i++){ if(null == args[i]) { args[i] = Classes.getDefaultValue(parameters[i].getType()); } } return reflectedMethod.invoke(null, args); // if(index == -1){ // return javaMethod.invoke(null, args); // }else{ // return accessor.invokeMethod(null, index, args); // } } catch (Throwable e) { if(e instanceof InvocationTargetException){ e = e.getCause(); } if(e instanceof RuntimeException){ throw (RuntimeException)e; } throw new ReflectException(Strings.format("Error invoking method '{0}'",getName()),e); } }
args[i] = Classes.getDefaultValue(parameters[i].getType());
/** * Injects the properties into the given bean. */ public void inject(Object bean) { Args.notNull(bean,"bean"); BeanType bt = BeanType.of(bean.getClass()); for(Entry<String, String> p : allMap.entrySet()){ String key = p.getKey(); String val = p.getValue(); if(!Strings.isEmpty(val)){ BeanProperty bp = bt.tryGetProperty(key); if(null != bp){ Object pv = bp.getValue(bean); if(null == pv || pv == Classes.getDefaultValue(bp.getType())){ bp.setValue(bean, val); } } } } }
return (T)Classes.getDefaultValue(targetType);