泛型
就是一种不确定的数据类型。
泛型的本质就是类型参数化。
泛型可以省略,如果省略,默认泛型是object类型。
泛型的优点:
-
避免强制类型转换的异常
-
可以把运行时的问题提前到编译时期。
泛型类的定义语法:
public class 类名称<泛型标识,泛型标识, ...>{
private 泛型标识 变量名;
.....
}
使用语法:
类名<具体的数据类型> 对象名 = new 类名<具体的数据类型>();
泛型类:
public class ArrayList<E> {
public boolean add(E e){ }
public E get(int index){ }
}
泛型方法:
public class T {
public <E> E sayHello(E e) {
return e;
}
}
泛型接口:
public interface T<E> {
boolean add(E e);
E get(int index);
}
public interface Service<T> {
void set(T t);
T get(int id);
}
实现接口的时候确定泛型类型
public class UserService implements Service<User> {
}
创建泛型接口对象的时候确定泛型类型
public class UserService<T> implements Service<T> {
@Override
public void set(T t) {
}
@Override
public T get(int id) {
return null;
}
}
UserService<User> service = new UserService<>();
泛型通配符
通常情况下,T,E,K,V,?
? 表示不确定的Java类型
T (type)表示具体的一个Java类型
K V(key value)分别代表Java键值中的key value
E 代表element
public void test(List<?> list){
}
5207

被折叠的 条评论
为什么被折叠?



