给你举个例子:static void expurgate(Collection c) { for (Iterator i = c.iterator(); i.hasNext(); ) if (((String) i.next()).length() == 4) //以前是这样写,从集合类取出元素要进行类型的强制转换,如果类型失配,运行时产生ClassCastException异常 i.remove(); }~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //现在,这样写,事先指定了Collection和Iterator集合类里的元素类型 static void expurgate(Collection<String> c) { for (Iterator<String> i = c.iterator(); i.hasNext(); ) if (i.next().length() == 4) //这里不再需要强制转换,在编译阶段保证了类型的匹配 i.remove(); }
泛型
可以去google相关资料,网上很多。
for (Iterator i = c.iterator(); i.hasNext(); )
if (((String) i.next()).length() == 4)
//以前是这样写,从集合类取出元素要进行类型的强制转换,如果类型失配,运行时产生ClassCastException异常
i.remove();
}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//现在,这样写,事先指定了Collection和Iterator集合类里的元素类型
static void expurgate(Collection<String> c) {
for (Iterator<String> i = c.iterator(); i.hasNext(); )
if (i.next().length() == 4)
//这里不再需要强制转换,在编译阶段保证了类型的匹配
i.remove();
}