java实际开发中泛型使用需要注意的一些问题

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

//注意在方法上声明泛型时,泛型出现的位置应该紧挨在返回类型的前面。

}

原文地址:https://www.cnblogs.com/javawebsoa/p/3074070.html