1.Map<K,V> 声明的泛型类型必须是类,不能是基本类型。如果是基本类型将其写为对应的对象类型。
2.Map<k,v> map=new LinkedHashMap<k,v>();
当两边都有泛型时,那么这两个泛型就必须相同。
容易出错的地方,如:
List<Object>list=new ArrayList<String>();不行
List<String>list=new ArrayList<Object>();不行
3.也可以允许只有一边有泛型,另一边没有泛型。
Map map=new LinkedHashMap<k,v>();
Map<k,v> map=new LinkedHashMap();
3.泛型是给javac使用的,用于限定往集合中要添加的元素类型。但是当编译器完成对带有泛型的java程序后,生成的class文件中是不带有泛型信息的,这个过程称之为“擦除”。这样可以避免影响程序运行的效率。
4.当自定义一个方法中带有多个泛型时,其声明的格式为:
Public <T,E,F> void method(T t,E e,F f){}
5.当一个方法为static时,那么这个静态方法就不能使用在类上声明的泛型,只能在自己的方法上进行泛型声明。
Class Demo<K>
{
Public static void method(K name){}//错误
Public static <T> void f1(T a){}
//注意在方法上声明泛型时,泛型出现的位置应该紧挨在返回类型的前面。
}