我想在我的项目中定义泛型静态方法.要求是方法返回类型是方法参数之一.
以下是我的解决方案.
public static <T> List<T> convertMapToAttribute(Class<T> attrClass, T attr) {
List<T> list = null;
if (attrClass.equals(String.class)) {
list = (List<T>) new ArrayList<String>();
list.add(attr);
} else if (attrClass.equals(Integer.class)) {
list = (List<T>)new ArrayList<Integer>();
list.add(attr);
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题.
以下应该工作正常:
List<T> list = new ArrayList<T>();
List<T> list = new ArrayList<>(); // Java 7
Run Code Online (Sandbox Code Playgroud)