什么是泛型
所谓泛型就是允许在定义类、接口时指定类型形参,这个类型形参将在声明变量、创建对象时确定。增加了泛型支持后的集合,完全可以记住集合中元素的类型,并可以在编译时检查集合中元素的类型。即解决一些安全问题,同时还可以让代码变得更加简洁。
泛型的格式:通过<>来定义要操作的引用数据类型,创建一个只存放字符串的对象。
如以下代码:
public class GenericityDemo {
public static void main(String[] args) {
//创建一个只能保存字符串的ArrayList集合
List<String> strList=new ArrayList<String>();
//如果存放其他类型的对象时会出现编译错误
strList.add("楠楠");
System.out.println(strList);
}
}
使用泛型的优点
1、将运行时期出现的ClassCastExcpetion , 转移到了编译时期。方便于程序员解决问题,让运行时期问题减少。
2、避免了强制转换的麻烦。
自定义泛型
我们除了使用Java提供的一些泛型类之外,还可以自定义泛型
那么怎样自定义一个泛型类呢?格式如下:
class Tools
{
}
//定义一个工具类Tools
//因为不知道要操作的类型是什么所以增加泛型支持
class Tools<T>
{
// 包含输出函数:
public void sop(T t)
{
System.out.println("sop:"+t);
}
}
//定义一个Books 类
class Books
{
private String name ;
public Books(String name)
{
this.name = name ;
}
// 重写toString 方法
public String toString()
{
return "name = " + name ;
}
}
public class GenericText
{
public static void main(String[] args)
{
Tools<Books> tool = new Tools<Books>() ;
// tool 可以操作 Books 类型,还可以操作Integer 类型和String类型。
tool.sop(new Books("神雕侠侣"));
}
}