我有一種方法在使用本機查詢時爲枚舉值列表的in子句構建SQL。問題是,我不知道如何使它與一個特定的枚舉列表,只有一個通用的。傳遞具有泛型的枚舉的列表
這裏是方法:
public static String toDbInClauseEnum(final List<Enum<?>> pEnums)
{
if (pEnums == null || pEnums.isEmpty())
{
throw new IllegalArgumentException("Null or empty list passed to method.");
}
StringBuilder inClause = new StringBuilder();
inClause.append("(");
boolean addComma = false;
for (Enum<?> e : pEnums)
{
if (addComma)
{
inClause.append(",'" + e.name() + "'");
}
else
{
inClause.append("'" + e.name() + "'");
addComma = true;
}
}
inClause.append(")");
return inClause.toString();
}
如果我試圖通過枚舉值的常規列表,如
List<EventType>
我得到的錯誤:
The method toDbInClauseEnum(List<Enum<?>>) in the type DatabaseUtil is
not applicable for the arguments (List<EventType>)
我不不知道我想定義我以通用的方式傳遞給這個方法的列表,因爲這留下了出錯的空間,但是我不能找出如何解決這個錯誤。
我已經四處搜尋並嘗試了一些不同的東西,但沒有一個直接解決這個問題,所以我不確定從這裏去哪裏。
使其論點'名單<?擴展枚舉>>'? – Ordous 2014-08-27 16:26:46