Java 泛型举例

Java 5 之后引入泛型(Genetics)。

[color=red]使用泛型的入门例子:[/color]

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(); // 3
System.out.println(x);
}

}


解释:因为使用泛型语法,// 3 处不必进行Integer类型强制转换。

[color=red]泛型的简单定义:[/color]

package generics.define;

public interface List<E> {
void add(E x);
Iterator<E> iterator();
}
interface Iterator<E> {
E next();
boolean hasNext();
}



[color=red]有边界的通配符:[/color]

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);
}

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值