泛型

2019-08-28 14:36:37 浏览数 (2)

简单的泛型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;
    }
}

0 人点赞