数组是java中保存对象或基本类型常用的方法,
可是数组尤其缺陷那便是大小固定,不能增加。
在java 1.5中引入了一种更好的保存对象的类型,那便是泛型。
看看下面简单的泛型例子吧。
定义一个Fruit的超类
1 package com.duduli.li;
2
3 public class Fruit {
4 public Fruit(){
5 System.out.println("It is a fruit!");
6 }
7 public void display(int i){
8 System.out.println("i = " + i);
9 }
10 }
11
然后是一个Apple类和一个Orange类,两个类都继承Fruit类
1 package com.duduli.li;
2
3 public class Apple extends Fruit {
4
5 public Apple(){
6 System.out.println("It is an apple");
7 }
8
9 @Override
10 public void display(int i) {
11 // TODO Auto-generated method stub
12 super.display(i);
13 }
14 }
15
1 package com.duduli.li;
2
3 public class Orange extends Fruit {
4 public Orange (){
5 System.out.println("It is an Orange");
6 }
7
8 @Override
9 public void display(int i) {
10 // TODO Auto-generated method stub
11 super.display(i);
12 }
13 }
14
然后就是Client的测试类了
1 package com.duduli.li;
2
3 import java.util.ArrayList;
4
5 public class Client {
6
7 /**
8 * @param args
9 */
10 public static void main(String[] args) {
11 // TODO Auto-generated method stub
12 ArrayList<Fruit> fruits = new ArrayList<Fruit>();
13 fruits.add(new Apple());
14 fruits.add(new Orange());
15
16 for(Fruit f : fruits){
17 // System.out.println(f);
18 // f为调用toString方法,输出类名及该对象的散列码的无符号十六进制表示
19 f.display(8);
20 }
21 }
22 }
显示结果为:
1 It is a fruit!
2 It is an apple
3 It is a fruit!
4 It is an Orange
5 i = 8
6 i = 8
7
在这里的
ArrayList<Fruit> fruits = new ArrayList<Fruit>();
我采用了继承Fruit,如果ArrayList<> fruits = new ArrayList<>();
定义的话,此fruits里面容纳的Object类型。