Използвам рекурсивно дърво на hashmaps, по-специално Hashmap карта, където Object е препратка към друга Hashmap и т.н. Това ще бъде предадено около рекурсивен алгоритъм:
foo(String filename, Hashmap<String, Object> map)
{
//some stuff here
for (Entry<String, Object> entry : map.entrySet())
{
//type warning that must be suppressed
foo(entry.getKey(), (HashMap<String, Object>)entry.getValue());
}
}
Знам със сигурност, че Object
е от тип Hashmap<String, Object>
, но съм раздразнен, че трябва да потискам предупреждението с помощта на @SuppressWarnings("unchecked")
.
Ще бъда доволен от решение, което прави или assert(/*entry.getValue() is of type HashMap<String, Object>*/)
, или хвърля изключение, когато не е така. Тръгнах по маршрута на Generics за безопасност на типа на компилиране и ако потисна предупреждението, то проваля целта.
Благодаря ви за коментарите, ksb