Idealmente, comience a usar genéricos por completo. No ha mostrado lo que el tipo de map
es, pero lo ideal es que sea capaz de escribir algo como:
Set<String> keys = map.keySet();
SortedSet<String> s = new TreeSet<String>(keys);
que sería en el caso en map
era algo así como un Map<String, Integer>
.
Si map
es un tipo crudo, es más difícil, de nuevo, la mejor solución sería comenzar a agregar genéricos a lo largo de su código base, eliminando los tipos sin procesar. Eso no siempre es posible si el mapa es devuelto por un código de un tercero, por supuesto. En ese caso, es posible que deba suprimir las advertencias en una línea al convertir de tipos sin formato a tipos genéricos, posiblemente a través de Collections.checkedCollection
, pero después de eso, debería poder trabajar con el tipo genérico "correctamente". Por ejemplo:
@SuppressWarnings("unchecked") // Just for this one statement
Collection<String> keys = Collections.checkedCollection(map.keySet(),
String.class);
// Now this statement is fully generic with no warnings
SortedSet<String> s = new TreeSet<String>(keys);
Tendríamos que ver más de su código (para ver el contexto). Sospecho que es porque no estás usando genéricos y no estás emitiendo, pero de nuevo ... si no publicas el código que está causando la advertencia, no podemos hacer otra cosa que adivinar. –