首先要说明<T>代表泛型,但不止T还有A、B、K、V等都是用到了java的泛型中,如果是容器类可以使用E,若键值匹配可以用K(Key)和V(Value)等,若是<?>,则是默认是允许Object及其下的子类,也就是java的所有对象了;

首先看如下泛型方法:

    public static <T extends CharSequence> T defaultIfBlank(T str, T defaultStr)
    {
      return isBlank(str) ? defaultStr : str;
    }
    如上图的泛型方法在方法名称前面有一个<T>声明,它的作用是告诉编译器编译的时候就识别它的类型,如果传入的T是A类型,那么你就不可以将B类型传入方法中去;
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐