简单的泛型demo
常见问题 | 解决方案 |
---|---|
<T> T 和T的区别 | 一个是强制返回泛型T,也就是要强制转成(T),一个是返回传入的对象 |
?和T的区别 | 详解,写的还可以https://blog.csdn.net/woshizisezise/article/details/79374460 |
? extend Object与T extend Object | 前者是包含关系,后者是子集关系。 |
?和T的区别
代码语言:javascript复制// 传入一类对象
<T> void method0(List<T> list) {
System.out.println(list);
}
// 可以传入多个对象
void method1(List<?> list) {
System.out.println(list);
}
代码语言:javascript复制public class Generic {
public static void main(String[] args) {
GenericDemo<User> genericDemo = new GenericDemo<>();
User user = new User();
user.setId(123);
user.setName("test");
genericDemo.save(user);
}
}
class GenericDemo<T> {
private T t;
<T> T save(T o) {
System.out.println(o);
return t;
}
}
class User {
private String name;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}