在Java中定义通用方法的最佳方法是什么?

R H*_*R H 1 java generics

我想在我的项目中定义泛型静态方法.要求是方法返回类型是方法参数之一.

以下是我的解决方案.

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)

我有两个问题.

  1. 我们可以在不添加@SuppressWarnings("未选中")的情况下避免这种警告"警告:[未经检查]未经检查的演员表"吗?
  2. 有没有其他优雅的方法来解决上述问题

Jim*_*imN 5

以下应该工作正常:

List<T> list = new ArrayList<T>(); 
List<T> list = new ArrayList<>(); // Java 7
Run Code Online (Sandbox Code Playgroud)