六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 32|回复: 0

Java 泛型举例

[复制链接]

升级  41.33%

96

主题

96

主题

96

主题

举人

Rank: 3Rank: 3

积分
324
 楼主| 发表于 2013-1-26 13:33:01 | 显示全部楼层 |阅读模式
Java 5 之后引入泛型(Genetics)。

使用泛型的入门例子:
package generics;import java.util.*;public class Eg01 {public static void main(String[] args){List<Integer> myIntList = new LinkedList<Integer>(); myIntList.add(new Integer(0));Integer x = myIntList.iterator().next(); // 3System.out.println(x);}}
解释:因为使用泛型语法,// 3  处不必进行Integer类型强制转换。

泛型的简单定义:
package generics.define;public interface List<E> {void add(E x);Iterator<E> iterator();}interface Iterator<E> {E next();boolean hasNext();}

有边界的通配符:
package generics.boundedwildcards;import java.util.*;public class Census{public static void addRegistry(Map<String, ? extends Person> registry){}public static void main(String[] args){Map<String, Driver> allDrivers = new HashMap<String, Driver>();Census.addRegistry(allDrivers);}}class Driver extends Person{}class Person{}
===========================================================
package generics.boundedwildcards;public abstract class Shape{public abstract void draw(Canvas c);}


package generics.boundedwildcards;public class Circle extends Shape{private int x, y, radius;public void draw(Canvas c){}}
package generics.boundedwildcards;public class Rectangle extends Shape{private int x, y, width, height;public void draw(Canvas c){}}
package generics.boundedwildcards;import java.util.List;public class Canvas {public void draw(Shape s){s.draw(this);}//public void drawAll(List<Shape> shapes){public void drawAll(List<? extends Shape> shapes){for(Shape s : shapes){s.draw(this);}}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表