public class IterableGenerics {
interface Data extends Iterable<String> { }
<T extends Data> void typeParam(T t) {
for(String s : t);
}
void wildcard(Iterable<? extends Data> t) {
for(Object a: t.iterator().next());
}
}