泛型
- 作用:强制类型检查
自定义泛型
public static void main(String[] args) {
Integer i = print(1); // <Integer> Integer com.lee.DiyGenericity.print(Integer t)
String s = print("First"); // <String> String com.lee.DiyGenericity.print(String t)
}
// 自定义泛型
// 格式: 修饰符 <自定义泛型声明> 类型 方法名(参数列表)
// T只是一个占位符而已
public static <T> T print(T t) {
// 返回类型是在传入实参的时候确定
return t;
}
泛型类
class MyList<T>{
ArrayList<T>[] tArr = new ArrayList[5];
int index = 0;
public MyList() {
}
public void add(T t){
tArr[index++] = (ArrayList<T>) t;
}
}
泛型接口
interface UserDao<T>{
public void add(T t);
public void remove(T t);
}
// 在接口上定义的泛型,在实现该接口的时候指定
// 如果没有指定,默认是Object类型
class UserDaoImpl implements UserDao<String>{
@Override
public void add(String t) {}
@Override
public void remove(String t) {}
}
// 如果想在创建接口实现类对象的时候才指定自定义泛型的具体数据类型
// 版本2
class UserDaoImpl<T> implements UserDao<T>{
@Override
public void add(T t){}
@Override
public void remove(T t) {}
}
// 参见Collection<E>接口的使用 迭代器接口Iterable<E>
给个github follow me的链接,上面有很多初学者可供学习的资料,项目.
<a>https://github.com/SuperZee</a>