在使用泛型的时候,禁止直接声明为原生态类型。如:
List list = new ArrayList();
而应该直接指定具体的参数类型,如:
List<String> list = new ArrayList();
如果真的不能确定具体的参数类型,那可以使用无限制的通配符类型:
List<?> list = new ArrayList();
主要原因是参数化的泛型会更安全,错误能尽早发现,不会等到运行时才会提示ClassCastException
。
在编写泛型代码时,编译器可能会提示很多警告信息,针对这些警告信息,尽量逐条将其解决,为了防止运行时抛出异常。
针对无法消除的警告,可以采用@SuppressWarnings("unchecked")
来标注使得警告消除。但是此注解标注的范围要尽量小,防止在本该出现警告的地方却没有出现,导致运行时异常。