package org.nutz.mvc.upload.injector; import java.util.List; import java.util.Map; import org.nutz.mvc.adaptor.ParamInjector; import org.nutz.mvc.upload.TempFile; public abstract class AbstractUploadInjector implements ParamInjector { protected String name; public AbstractUploadInjector(String name) { this.name = name; } @SuppressWarnings("unchecked") protected TempFile getTempFile(Object refer, String name) { if (refer == null) return null; Object obj = ((Map<String, Object>) refer).get(name); if (obj == null) return null; // Map 中只有可能有两种值, TempFile 或者 List<TempFile> // 如果是单一对象直接返回 if (obj instanceof TempFile) { return (TempFile) obj; } else if (obj instanceof String) return null; // 如果是列表,则取第一项 else { List<?> list = (List<?>) obj; if (list.isEmpty()) return null; else return (TempFile) list.get(0); } } }