1,泛型与数组在子类上面的对比 在整理java泛型的类型通配符之前,我们先来研究下java在数组设计上的一个不合理.我们来看下面代码: public class Test { public static void main(String[] args) { //1.定义一个Integer数组 Integer[] intArray = new Integer[2]; //2.定义一个Number数组,将上面的Integer数组赋值给Number数组 Number[] numArray = intA…
1,java7提供的泛型菱形语法 在java7之前,如果使用带泛型的接口和类定义变量初始化对象的时候,构造器后面也必须带上泛型,这有点恶心的.以前我在公司一直使用的java6,所以我也已经习惯了这种写法.代码如下: List<String> list = new ArrayList<String>(); Map<String, String> map = new HashMap<String, String>(); 为了绕开这么恶心的写法,我都习惯用goog…
所谓泛型,就是允许在定义类,接口,方法时使用类型形参,这个类型形参将在声明变量,创建对象,调用方法的时候动态的指定.JAVA5之后修改了集合中所有的接口和类,为这些接口和类都提供了泛型的支持. 关于泛型的底层,我们先来看看一段代码: public class Test { public static void main(String[] args) { List<String> strList = Lists.newArrayList(); List<Integer> intLis…
控制台程序 使用通配符类型参数可以设定方法的参数类型,其中的代码对于泛型类的实际类型参数不能有任何依赖.如果将方法的参数类型设定为Binary<?>,那么方法可以接受BinaryTree<String>.BinaryTree<Double>或任意BinaryTree<>类型的参数. LinkedList<T>和BinaryTree<T>和上一例子一样. 下面是上一个例子的修改版本: public class TryWildCard {…