在写程序的时候,我们希望某一个函数接收的参数,有一个范围的限制,这时候我们就可以考虑使用泛型的上限和下限去解决。我们先看一段代码,然后再去详细解释。
- class Point<T>
- {
- private T x;
- private T y;
- public T getX()
- {
- return x;
- }
- public void setX(T x)
- {
- this.x = x;
- }
- public T getY()
- {
- return y;
- }
- public void setY(T y)
- {
- this.y = y;
- }
- }
- public class Demo2
- {
-
- static void show(Point<? super String> p)
- {
- System.out.println(p.getX());
- System.out.println(p.getY());
- }
- public static void main(String args)
- {
- Point<Integer> p1 = new Point<Integer>();
- p1.setX(2);
- p1.setY(4);
- Point<String> p2 = new Point<String>();
- p2.setX("东经43度");
- p2.setY("北纬34度");
- show(p1);
- show(p2);
- }
- }
在这段程序中我们定义了一个函数show,我们在参数的后面使用的<? ..>这里的问号,表示的通配符,代表接收的实际参数的类型。我们可以看出来在程序中我先注释了entends的一行代码。这个表示参数的上限,接收的参数必须是Number或者是其子类,如果使用这个的时候,我们调用show方法的时候,传递p2会报错,因为p2不是Number或者其子类。同样的,我们使用super关键字,这个表示参数的上限,程序中表示接收的参数只能是String或者其父类,这时候show方法的参数是p1会报错,不满足下限的要求。
对于上限和下限基本的使用就是这样,希望对你有帮助。
TAG: Java泛型4
点击下载系统:
http://www.myeducs.cn/chaxun/index.html?go=Java泛型4—泛型的上限和下限&aa=%CB%D1%CB%F7%C2%DB%CE%C4