JAVA中泛型常常被使用,一般用寄存数据什么的,这里我就不再一一介绍了。
这里介绍泛型的另一个很重要的用途是它的类型参数约束机制。类型参数约束机制作用除了体现在JavaSE Tutorial 介绍的控制实例化过程外,还有如下主要事项:
当类成员使用相同类型参数时,该类型参数的约束也同样使用于成员。
设计每一个类型参数约束时,要反复思考,以满足客户的需求。
对于集合类型,尽可能不要在生成代码中出现无约束的类型参数。
这里举一个类型参数约束的例子:
定义一个简单的接口:
<span style="font-size:12px;">package Test;
public interface MyInterface {
public void say();
}</span>
实现这一接口的Dog类:
package Test;
public class Dog implements MyInterface {
@Override
public void say() {
System.out.println("Dog dog...");
}
}
测试代码:
<span style="font-size:12px;">package Test;
import java.util.HashMap;
import java.util.Map;
public class Test <k,v extends MyInterface>{//约束条件为extends MyInterface
private Map<k,v> map = new HashMap<>();
public Test<k,v> mapPut(k a,v b){
map.put(a, b);
map.get(a).say();
return this;
}
public static void main(String[] args) {
//由于约束条件使v 只能是实现了MyInterface接口的:
//Test<String,String> tt = new Test<String,String>();//出错
Test<String,Dog> t = new Test<String,Dog>();//进行了约束。
Dog b = new Dog();
b.say();
t.mapPut("Dog", b);
}
}</span>
结果为:
Dog dog...
Dog dog...
好了,自己感受下吧。
Java泛型类型参数约束机制及应用
214

被折叠的 条评论
为什么被折叠?



