プロジェクトの 1 つでジェネリックな静的メソッドを定義したいと考えています。要件は、メソッドの戻り値の型がメソッド パラメータの 1 つであることです。
以下は私の解決策です。
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;
}
2 つの質問があります。
- @SuppressWarnings("unchecked") を追加せずに、この警告「警告: [unchecked] unchecked cast」を回避できますか?
- この上記の問題を解決する他のエレガントな方法はありますか