62,614
社区成员
发帖
与我相关
我的任务
分享
Collection coll = new ArrayList();
coll.add("abc");
coll.add("itcast");
coll.add(5);//由于集合没有做任何限定,任何类型都可以向其中存放
Iterator it = coll.iterator();
while(it.hasNext()){
//需要打印每个字符串的长度,就要把迭代出来的对象转成String类型
String str = (String) it.next();
System.out.println(str.length());
}
public static void main(String[] args) {
Collection<String> list = new ArrayList<String>();
list.add("itheima");
list.add("itcast");
// list.add(666);//当集合明确类型后,存放类型不一致就会编译报错
// 集合已经明确具体存放的元素类型,那么在使用迭代器的时候,迭代器也同样会知道具体遍历
元素类型
Iterator<String> it = list.iterator();
while(it.hasNext()){
String str = it.next();
//当使用Iterator<String>控制元素类型后,就不需要强转了。获取到的元素直接就是
String类型
System.out.println(str.length());
}
}
public <T> void function(T t1, T t2) {
...
}
class AA extends A {
public void action() {
System.out.println("AA");
}
}
public class A {
public void action() {
System.out.println("A");
}
public static <T extends A> void test1(T t) { //T是A的子类泛型
t.action(); //代码简洁
}
public static void test2(Object t) { //用Object代码繁琐
if (t instanceof A) { //判断类型
((A)t).action(); //强行转换
}
}
public static void main(String[] args) {
A a = new AA();
test1(a);
test2(a);
}
}